From roland.illig at gmx.de Thu Oct 1 08:41:21 2009 From: roland.illig at gmx.de (Roland Illig) Date: Thu, 01 Oct 2009 08:41:21 +0200 Subject: [M3devel] Mailing list archive In-Reply-To: <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> References: <4AC24E30.5030304@gmx.de> <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> Message-ID: <4AC44F11.5010506@gmx.de> Olaf Wagner schrieb: > Quoting Roland Illig : > >> Hi, >> >> I would like to fix a bug I found in 2005, but the bug's details are >> not in trac, but only in a mailing list archive, which isn't available >> anymore. >> >> https://projects.elego.de/cm3/ticket/640 >> >> Can anyone provide me with the details? > > Here is a copy of your old mail: Thank you. I cannot reproduce the bug anymore, so I think you can close the ticket. Roland From wagner at elegosoft.com Thu Oct 1 12:57:55 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 1 Oct 2009 12:57:55 +0200 (CEST) Subject: [M3devel] p007 still hangs on I386_OPENBSD Message-ID: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> It seems to me that the thread test p007 still hangs at least on I386_OPENBSD: http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console 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 Thu Oct 1 16:23:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 1 Oct 2009 10:23:36 -0400 Subject: [M3devel] p007 still hangs on I386_OPENBSD In-Reply-To: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> References: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> Message-ID: <0E0CFE4A-267A-4719-B85E-6FDBDECBB4A0@cs.purdue.edu> Weird. I don't have that platform to test on. Can you attach to the process in gdb, and get a backtrace for all the threads? On 1 Oct 2009, at 06:57, Olaf Wagner wrote: > It seems to me that the thread test p007 still hangs at least on > I386_OPENBSD: > > http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console > > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:27:14 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:27:14 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:33:05 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:33:05 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: e.g. does this help: PROCEDURE Alert(t: T) = VAR prev, next: T; BEGIN IF t = NIL THEN Die(ThisLine(), "Alert called from non-Modula-3 thread") END; (* remove this *) EnterCriticalSection_giant(); (* make next two lines one interlocked *) t.alerted := TRUE; IF t.alertable THEN (* add this *) EnterCriticalSection_giant(); (* Dequeue from any CV and unblock from the semaphore *) IF t.waitingOn # NIL THEN next := t.waitingOn.waiters; prev := NIL; WHILE next # t DO <* ASSERT(next#NIL) *> prev := next; next := next.nextWaiter; END; IF prev = NIL THEN t.waitingOn.waiters := t.nextWaiter ELSE prev.nextWaiter := t.nextWaiter; END; t.nextWaiter := NIL; t.waitingOn := NIL; END; t.alertable := FALSE; IF ReleaseSemaphore(t.waitSema, 1, NIL) = 0 THEN Choke(ThisLine()); END; END; LeaveCriticalSection_giant(); (* this moves up obviously *) END Alert; From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Subject: win32 threads/alert/race Date: Mon, 5 Oct 2009 14:27:14 +0000 Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Oct 8 12:14:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 08 Oct 2009 12:14:39 +0200 Subject: [M3devel] Status of threads for RC4? Message-ID: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Activity has ceased on the list and the CM3 repository, but I'm not sure about the state of the thread system on Windows and POSIX (here at least on OpenBSD). Are further improvements to be expected? Do we know the reason for the non-termination of p007 on OpenBSD? A short update would be great. TIA, 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 Thu Oct 8 13:58:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 8 Oct 2009 04:58:37 -0700 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Posix was thought good; but openbsd not looked at, Win32 can hang. I'm still thinking. Current ideas: try plugging in boost's condition variables, try "what java does". Boost looks inefficient but I'm willing to take that at this point; java looks deceptively simple - I looking at the right code and it has enough features? Win32 may also have been this way "forever"? - Jay (phone) On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > From jay.krell at cornell.edu Thu Oct 8 15:32:13 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 13:32:13 +0000 Subject: [M3devel] condition variables/win32 Message-ID: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:54:07 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:54:07 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach to the process using gdb and grab a stack dump). Are we seeing this on any other pthread target? On 8 Oct 2009, at 06:14, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:55:03 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:55:03 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Message-ID: <99BC9CEE-2E27-4C70-AE1C-DC8D1C832049@cs.purdue.edu> On 8 Oct 2009, at 07:58, jay.krell at cornell.edu wrote: > Posix was thought good; but openbsd not looked at, > Win32 can hang. I'm still thinking. Current ideas: try plugging in > boost's condition variables, try "what java does". Boost looks > inefficient but I'm willing to take that at this point; java looks > deceptively simple - I looking at the right code and it has enough > features? > Win32 may also have been this way "forever"? Jay, I haven't had time to consider you most recent proposal... Probably not until next week. > > - Jay (phone) > > On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > >> Activity has ceased on the list and the CM3 repository, but I'm not >> sure about the state of the thread system on Windows and POSIX >> (here at least on OpenBSD). >> >> Are further improvements to be expected? >> Do we know the reason for the non-termination of p007 on OpenBSD? >> >> A short update would be great. >> >> TIA, >> >> 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 Thu Oct 8 16:09:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 10:09:31 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 16:22:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 14:22:51 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> References: Message-ID: But, is it common? Ok to make it contribute significantly to spurious wakeups? That is, I have this crazy theory...really need to come back to this fresh, try coding it, testing it..where you can implement a condition variable simply by waking everyone whenever a mutex is exited. I had this thought that what a condition variable represents is, instead of telling the kernel, here is one bit, an event, I am waiting for, instead you are telling it, hey, I have some custom code to evaluate, but it is false currently, and can only change when some exits such and such a lock, so just let me know when that lock is exited. The guy releasing the lock, or signal or broadcast..if he is signaling or broadcasting, he knows more specifically what he changed, not everything computable based on data protected by the lock, just something specific, but you can just wake everyone waiting on any of the conditions associated with the lock and it isn't maximally efficient but it should be correct. Basically, condition variable equals "wake me when someone changes some data and exits its lock". A better condition variable is that when there are multiple "conditions" in the data, the code making the change can target the wakeup better. But it isn't requires. And sometimes might not even matter much -- if in fact the ratio of locks to conditions is close to or equal to 1. - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] condition variables/win32 Date: Thu, 8 Oct 2009 10:09:31 -0400 In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 17:00:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 11:00:36 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: <20091008143422.D91C01A207A@async.async.caltech.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <20091008143422.D91C01A207A@async.async.caltech.edu> Message-ID: Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>>
On 8 Oct >>> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Thu Oct 8 18:15:57 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 12:15:57 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <4ACDD77A.1E75.00D7.1@scires.com> Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:13:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:13:03 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:16:58 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:16:58 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACDD77A.1E75.00D7.1@scires.com> References: Message-ID: Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Fri Oct 9 00:47:03 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 18:47:03 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <4ACDD77A.1E75.00D7.1@scires.com> Message-ID: <4ACE2482.1E75.00D7.1@scires.com> I do make use of the alert mechanism and condition variables in my code. My concern is that if Juno is the only place where we have observed a problem, maybe the problem is with the Juno code and not with the threads implementation. That is why I was wondering if we had a non-Juno example that exhibits a problem. Having more than one exemplar may also help track down the problem. The modules I referenced in my prior message create higher-level abstractions. They are implemented using the primitives available in the language proper, no UNSAFE stuff. Of course, any efficiency improvement in the lower levels would be a benefit, and yes it is probable that recoding my abstractions at a lower level or making them features at a lower level would be more efficient. Note that I'm not suggesting that any of these abstractions be made features of the language or pushed down to the lower levels. I was just pointing out that I've got a lot of stuff that uses threading on Windows and I haven't observed that the threading implementation is broken. Perhaps I am not exercising it the same way as Juno, or perhaps Juno is doing something wrong. Regards, Randy >>> Jay K 10/8/2009 3:16 PM >>> Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Fri Oct 9 13:59:31 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 09 Oct 2009 13:59:31 +0200 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACE2482.1E75.00D7.1@scires.com> References: <4ACDD77A.1E75.00D7.1@scires.com> <4ACE2482.1E75.00D7.1@scires.com> Message-ID: <20091009135931.chei3435hcsgcwog@mail.elegosoft.com> Quoting Randy Coleburn : > I do make use of the alert mechanism and condition variables in my code. > > My concern is that if Juno is the only place where we have observed > a problem, maybe the problem is with the Juno code and not with the > threads implementation. That is why I was wondering if we had a > non-Juno example that exhibits a problem. Having more than one > exemplar may also help track down the problem. > > The modules I referenced in my prior message create higher-level > abstractions. They are implemented using the primitives available > in the language proper, no UNSAFE stuff. Of course, any efficiency > improvement in the lower levels would be a benefit, and yes it is > probable that recoding my abstractions at a lower level or making > them features at a lower level would be more efficient. > > Note that I'm not suggesting that any of these abstractions be made > features of the language or pushed down to the lower levels. I was > just pointing out that I've got a lot of stuff that uses threading > on Windows and I haven't observed that the threading implementation > is broken. Perhaps I am not exercising it the same way as Juno, or > perhaps Juno is doing something wrong. I would second Randy's concern insofar as we should be able to add a test that exhibits the failure and then test any new implementation against it. At least that would be the proper way to do it. If you have a theory what breaks or where a race may be hidden, it should be possible to write a simple test, or isn't it? This again is just me with my release engineer's hat on :-) Also, if you have any tests that can be added to m3tests, please do! 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 wagner at elegosoft.com Tue Oct 13 08:46:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 13 Oct 2009 08:46:39 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Quoting Tony Hosking : > I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > to the process using gdb and grab a stack dump). Are we seeing this > on any other pthread target? I just logged in quickly to Jay's OpenBSD system and started test 7. Output stops after line 8 and I had to hit Control-C. bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) set lang Modula-3 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "\000", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= RECORD inCritical = 0; pool = RECORD note = Allocated; pure = FALSE; page = NIL; next = NIL; limit = NIL; END; END) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=16_3c001114) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) Attaching to a running program doesn't yield anything useful: bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & [1] 26756 bash-3.2$ 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: bash-3.2$ ps PID TT STAT TIME COMMAND 22500 p0 Is 0:00.00 -ksh (ksh) 18592 p0 S 0:00.04 bash 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm 28998 p0 R+ 0:00.00 ps bash-3.2$ m3gdb GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd". (m3gdb) attach 26756 Attaching to process 26756 0x0d35f8f1 in ?? () (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm No symbol table is loaded. Use the "file" command. (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm Reading symbols from /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. (m3gdb) bt #0 0x0d35f8f1 in ?? () #1 0x0a0c0314 in ?? () #2 0x84533000 in ?? () #3 0x00000001 in ?? () #4 0x00000001 in ?? () #5 0x00000001 in ?? () #6 0x00000000 in ?? () Does this help? Anything I should try this evening? 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 Tue Oct 13 15:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 13 Oct 2009 09:16:08 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Message-ID: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> I need to see all the threads: thread apply all bt On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need a stack dump from the hung OpenBSD p007 run to diagnose >> (attach >> to the process using gdb and grab a stack dump). Are we seeing this >> on any other pthread target? > > I just logged in quickly to Jay's OpenBSD system and started test 7. > Output stops after line 8 and I had to hit Control-C. > > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) set lang Modula-3 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "\000", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > FALSE; page = NIL; next = NIL; limit = NIL; END; END) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) > > Attaching to a running program doesn't yield anything useful: > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > [1] 26756 > bash-3.2$ > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: > bash-3.2$ ps > PID TT STAT TIME COMMAND > 22500 p0 Is 0:00.00 -ksh (ksh) > 18592 p0 S 0:00.04 bash > 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > 28998 p0 R+ 0:00.00 ps > bash-3.2$ m3gdb > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd". > (m3gdb) attach 26756 > Attaching to process 26756 > 0x0d35f8f1 in ?? () > (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > No symbol table is loaded. Use the "file" command. > (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > (m3gdb) bt > #0 0x0d35f8f1 in ?? () > #1 0x0a0c0314 in ?? () > #2 0x84533000 in ?? () > #3 0x00000001 in ?? () > #4 0x00000001 in ?? () > #5 0x00000001 in ?? () > #6 0x00000000 in ?? () > > Does this help? > Anything I should try this evening? > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 14 08:09:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 14 Oct 2009 08:09:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Well, of course you need all thread stacks to diagnose a deadlock, silly me. But I haven't been able to login again since then: Jay, is the OpenBSD server turned off? Could you either turn it on this evening CET or send Tony the needed traces? Thanks in advance, Olaf > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach >>> to the process using gdb and grab a stack dump). Are we seeing this >>> on any other pthread target? >> >> I just logged in quickly to Jay's OpenBSD system and started test 7. >> Output stops after line 8 and I had to hit Control-C. >> >> >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: ^C >> Program received signal SIGINT, Interrupt. >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. >> ) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) set lang Modula-3 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "\000", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) >> >> Attaching to a running program doesn't yield anything useful: >> >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & >> [1] 26756 >> bash-3.2$ >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: >> bash-3.2$ ps >> PID TT STAT TIME COMMAND >> 22500 p0 Is 0:00.00 -ksh (ksh) >> 18592 p0 S 0:00.04 bash >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm >> 28998 p0 R+ 0:00.00 ps >> bash-3.2$ m3gdb >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd". >> (m3gdb) attach 26756 >> Attaching to process 26756 >> 0x0d35f8f1 in ?? () >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm >> No symbol table is loaded. Use the "file" command. >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. >> (m3gdb) bt >> #0 0x0d35f8f1 in ?? () >> #1 0x0a0c0314 in ?? () >> #2 0x84533000 in ?? () >> #3 0x00000001 in ?? () >> #4 0x00000001 in ?? () >> #5 0x00000001 in ?? () >> #6 0x00000000 in ?? () >> >> Does this help? >> Anything I should try this evening? >> >> 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 jay.krell at cornell.edu Thu Oct 15 01:13:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 14 Oct 2009 23:13:57 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 dabenavidesd at yahoo.es Thu Oct 15 10:27:56 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 15 Oct 2009 08:27:56 +0000 (GMT) Subject: [M3devel] Status of threads for RC4? In-Reply-To: Message-ID: <260188.52953.qm@web23603.mail.ird.yahoo.com> Hi all: I was merely thinking how we could mitigate the issue in threading. We could argue the current thread implementation issues on NT are worrisome but, the system performance is more important and I guess a release is waiting? for all platforms stability. I think we could make a work around to put some tests on the GUI subsystem on the test suite, using the sort of capability that Zeus Mentor Snapshot has to capture the screen shot and compare with others results with test already on: m3-ui/ui-tests m3-ui/ui/test Just getting some sort of difference between NT GUI subsystem and X implementation would allows to see where we can be missing something. Also integration on X implementation of Critical mass GUI upgrade would be highly appreciated: cm3-cvs/m3-ui/cmvbt Also I remember I saw the pm3 NT386GNU target implementation doing basic stuff with DEC SRC NT GUI, but? another doing advanced stuff with Mentor and others I think? the code you can get it by the package/src/ directories (http://www.1o0.de/wi-links/modula3/), but I?m not aware if it used the x/cygwin, I don?t think so, but even if so, would be an advance to have mentor running animation stuff until some point we could get better performance in the current NT GUI implementation (could be something in the garbage collection, Tony, as NT has its own garbage collector, has it been maintained after CM3 developed the new collector?) Another shot maybe for next release (7.0) is trying to develop tests on obliq framework and integration with pm3 documentation system, which seemed to be good. About Unix interfaces, Im thinking how to reuse the SPIN digital Unix interface so we can have a sort of a virtualization tool integrated in CM3 as a tool for deploying Unix apps on NT and getting some layers of Modula-3 runtime code based on a standarized Unix interface Sphinx.i3 (path in spin sources tree user/sphinx/src/IX86_SPIN/) something we could call "DECUnix.i3", we could also get some parts of the system running directly over Modula-3 runtime code rather than on bare Unix interfaces getting a more standarized behaviuor and maybe we could gain some knowledge to do experiments for system developers and users Thanks in advance --- El mi?, 14/10/09, Jay K escribi?: De: Jay K Asunto: Re: [M3devel] Status of threads for RC4? Para: "Olaf" , "Tony" CC: "m3devel" Fecha: mi?rcoles, 14 octubre, 2009 6:13 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. ? ?- Jay ? > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:30:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:30:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:49:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:49:51 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: In head, wierd. in gdb: 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 7 30 731: [1] + Stopped (tty output) gdb ./I386_OPENBSD/pgm $ attach shows no stack. Maybe more later? -Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu Date: Thu, 15 Oct 2009 14:30:22 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Status of threads for RC4? Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 wagner at elegosoft.com Thu Oct 15 23:45:04 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 15 Oct 2009 23:45:04 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Here you are: bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-all-pkgs-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) set lang Modula-3 (m3gdb) thread apply all bt Thread 10 (process 23708, thread 0x821ff000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c01105a in AddUnitI (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) at _m3main.mc:4 #11 0x1c00266c in ___start () #12 0x1c0025bf in _start () Warning: the current language does not match this frame. Thread 9 (process 23708, thread 0x821ff400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff4b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 23708, thread 0x87b14c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b14cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, mutex=0x231ca0dc, abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x031cf5a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 7 (process 23708, thread 0x87b14800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b148b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 6 (process 23708, thread 0x87b14000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b140b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 23708, thread 0x8b659800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6598b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 23708, thread 0x8b659000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6590b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 23708, thread 0x868d6400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d64b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 2 (process 23708, thread 0x868d6c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d6cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 1 (process 23708, thread 0x862c9400): #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0xbb315 #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I hope this helps, 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 Fri Oct 16 00:23:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 18:23:20 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: Hmm. This is very weird. All the threads are trying to acquire the same mutex (the global mutex in p007/src/Main.m3), but none of them is actually holding it. So, why can't one of them get it? Anyone else have any idea what's going on here? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 16 01:34:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 19:34:04 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) So what is thread 1 up to? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 18 10:16:11 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 18 Oct 2009 08:16:11 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Sun Oct 18 12:30:28 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Sun, 18 Oct 2009 12:30:28 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Quoting Tony Hosking : >> Thread 1 (process 23708, thread 0x862c9400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0xbb315 >> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) > > So what is thread 1 up to? I don't really understand what's going on there. But I made another test which might or might not be helpful. I single-stepped in thread 1 until it blocks. We get actually no output from other threads then (though several have been started, but then thread 3 seems to be corrupt. Here is the debugger session: -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. (m3gdb) r Starting program: /home/hudson/workspace/cm3-lastok-build-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. [Switching to process 15851, thread 0x85cc4800] Breakpoint 1, Main (mode=0) at ../Main.m3:127 127 BEGIN Current language: auto; currently Modula-3 (m3gdb) n 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) Single stepping until exit from function __i686.get_pc_thunk.bx, which has no line number information. 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 157 RTIO.Flush (); (m3gdb) AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) at ../src/runtime/common/RTLinker.m3:121 121 IF (m = NIL) THEN RETURN END; (m3gdb) 122 AddUnitI(m); (m3gdb) Breakpoint 1, Main (mode=1) at ../Main.m3:127 127 BEGIN (m3gdb) 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) finish Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 127 BEGIN (m3gdb) n 131 iolock := NEW (MUTEX); (m3gdb) 132 stop := NEW (Thread.Condition); (m3gdb) l 127 BEGIN 128 129 (* Thread.MinDefaultStackSize (20000); *) 130 131 iolock := NEW (MUTEX); 132 stop := NEW (Thread.Condition); 133 134 com := NEW (A, limit := 2000); 135 com.done := NEW (Thread.Condition); 136 com.first := 1; (m3gdb) n 134 com := NEW (A, limit := 2000); (m3gdb) 135 com.done := NEW (Thread.Condition); (m3gdb) 136 com.first := 1; (m3gdb) 137 com.next := 1; (m3gdb) 138 com.last := 1; (m3gdb) 139 t := NEW (T, id := 1, limit := 15); (m3gdb) 141 INC (com.count); (m3gdb) 142 Int (com.count, 5, ": "); (m3gdb) 144 th := Thread.Fork (t); (m3gdb) 145 t.thread := th; (m3gdb) 146 LOCK com DO (m3gdb) 147 Thread.Broadcast (com.done); (m3gdb) 148 END; (m3gdb) 151 LOCK com DO (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) ^C[New process 15851] ^C Program received signal SIGINT, Interrupt. [Switching to process 15851] 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) thread apply all bt Thread 11 (process 15851, thread 0x85cc4000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc40b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Current language: auto; currently c Thread 10 (process 15851, thread 0x84895400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848954b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, mutex=0x2dc1d0dc, abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x0dc225a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 9 (process 15851, thread 0x84895c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x84895cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 15851, thread 0x84895000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848950b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 7 (process 15851, thread 0x88197400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881974b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 6 (process 15851, thread 0x88197000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881970b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 15851, thread 0x8931f800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f8b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 15851, thread 0x8931f000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 15851, thread 0x856ab400): #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0x2e493 Thread 2 (process 15851): #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, fname=0x2dc1d0c8 "", lineno=767676616) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, time_remaining=0x7de7fc60) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, rem=0x7de7fc60) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021a29 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c0086b3 in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c008672 in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c008125 in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:110 #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () Thread 1 (process 15851, thread 0x85cc4800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc48b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../Main.m3:153 #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) at _m3main.mc:4 #11 0x1c00268c in ___start () #12 0x1c0025df in _start () #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I also tried increasing the default stack size; it didn't help. If you want me to test anything, I'll be happy to try it. 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 Sun Oct 18 20:09:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:09:02 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Message-ID: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> OK, now this is more interesting. We see that thread 2 is trying to get a GC cycle initiated by stopping the other threads. I am guessing that they are not responding to the thread signal being sent to them. Can you try with @M3debugthreads? 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > Quoting Tony Hosking : > >>> Thread 1 (process 23708, thread 0x862c9400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0xbb315 >>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >> >> So what is thread 1 up to? > > I don't really understand what's going on there. But I made another > test which might or might not be helpful. I single-stepped in thread 1 > until it blocks. We get actually no output from other threads then > (though several have been started, but then thread 3 seems to be > corrupt. Here is the debugger session: > > > -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-lastok-build- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. > [Switching to process 15851, thread 0x85cc4800] > > Breakpoint 1, Main (mode=0) at ../Main.m3:127 > 127 BEGIN > Current language: auto; currently Modula-3 > (m3gdb) n > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) > Single stepping until exit from function __i686.get_pc_thunk.bx, > which has no line number information. > 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 > 157 RTIO.Flush (); > (m3gdb) > AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) > at ../src/runtime/common/RTLinker.m3:121 > 121 IF (m = NIL) THEN RETURN END; > (m3gdb) > 122 AddUnitI(m); > (m3gdb) > > Breakpoint 1, Main (mode=1) at ../Main.m3:127 > 127 BEGIN > (m3gdb) > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) finish > Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () > 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 > 127 BEGIN > (m3gdb) n > 131 iolock := NEW (MUTEX); > (m3gdb) > 132 stop := NEW (Thread.Condition); > (m3gdb) l > 127 BEGIN > 128 > 129 (* Thread.MinDefaultStackSize (20000); *) > 130 > 131 iolock := NEW (MUTEX); > 132 stop := NEW (Thread.Condition); > 133 > 134 com := NEW (A, limit := 2000); > 135 com.done := NEW (Thread.Condition); > 136 com.first := 1; > (m3gdb) n > 134 com := NEW (A, limit := 2000); > (m3gdb) > 135 com.done := NEW (Thread.Condition); > (m3gdb) > 136 com.first := 1; > (m3gdb) > 137 com.next := 1; > (m3gdb) > 138 com.last := 1; > (m3gdb) > 139 t := NEW (T, id := 1, limit := 15); > (m3gdb) > 141 INC (com.count); > (m3gdb) > 142 Int (com.count, 5, ": "); > (m3gdb) > 144 th := Thread.Fork (t); > (m3gdb) > 145 t.thread := th; > (m3gdb) > 146 LOCK com DO > (m3gdb) > 147 Thread.Broadcast (com.done); > (m3gdb) > 148 END; > (m3gdb) > 151 LOCK com DO > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > > > ^C[New process 15851] > ^C > Program received signal SIGINT, Interrupt. > [Switching to process 15851] > 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) thread apply all bt > > Thread 11 (process 15851, thread 0x85cc4000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc40b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > Current language: auto; currently c > > Thread 10 (process 15851, thread 0x84895400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848954b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, > mutex=0x2dc1d0dc, > abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x0dc225a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 9 (process 15851, thread 0x84895c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x84895cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 15851, thread 0x84895000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848950b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 7 (process 15851, thread 0x88197400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881974b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 6 (process 15851, thread 0x88197000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881970b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 15851, thread 0x8931f800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f8b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 15851, thread 0x8931f000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 15851, thread 0x856ab400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0x2e493 > > Thread 2 (process 15851): > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, > fname=0x2dc1d0c8 "", lineno=767676616) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, > time_remaining=0x7de7fc60) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, > rem=0x7de7fc60) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021a29 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c0086b3 in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c008672 in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:110 > #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > > Thread 1 (process 15851, thread 0x85cc4800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc48b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol > table. > ) at ../Main.m3:153 > #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) > at _m3main.mc:4 > #11 0x1c00268c in ___start () > #12 0x1c0025df in _start () > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I also tried increasing the default stack size; it didn't help. > If you want me to test anything, I'll be happy to try it. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 18 20:55:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:55:31 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> Message-ID: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Do we have any idea when this problem started on OpenBSD? Has it always been there? On 18 Oct 2009, at 14:09, Tony Hosking wrote: > OK, now this is more interesting. We see that thread 2 is trying to > get a GC cycle initiated by stopping the other threads. I am > guessing that they are not responding to the thread signal being > sent to them. Can you try with @M3debugthreads? > > > > 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>>> Thread 1 (process 23708, thread 0x862c9400): >>>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>>> ) >>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>> Cannot access memory at address 0xbb315 >>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>> (m3gdb) >>> >>> So what is thread 1 up to? >> >> I don't really understand what's going on there. But I made another >> test which might or might not be helpful. I single-stepped in >> thread 1 >> until it blocks. We get actually no output from other threads then >> (though several have been started, but then thread 3 seems to be >> corrupt. Here is the debugger session: >> >> >> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-lastok-build- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >> [Switching to process 15851, thread 0x85cc4800] >> >> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >> 127 BEGIN >> Current language: auto; currently Modula-3 >> (m3gdb) n >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) >> Single stepping until exit from function __i686.get_pc_thunk.bx, >> which has no line number information. >> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >> 157 RTIO.Flush (); >> (m3gdb) >> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >> at ../src/runtime/common/RTLinker.m3:121 >> 121 IF (m = NIL) THEN RETURN END; >> (m3gdb) >> 122 AddUnitI(m); >> (m3gdb) >> >> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) finish >> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) n >> 131 iolock := NEW (MUTEX); >> (m3gdb) >> 132 stop := NEW (Thread.Condition); >> (m3gdb) l >> 127 BEGIN >> 128 >> 129 (* Thread.MinDefaultStackSize (20000); *) >> 130 >> 131 iolock := NEW (MUTEX); >> 132 stop := NEW (Thread.Condition); >> 133 >> 134 com := NEW (A, limit := 2000); >> 135 com.done := NEW (Thread.Condition); >> 136 com.first := 1; >> (m3gdb) n >> 134 com := NEW (A, limit := 2000); >> (m3gdb) >> 135 com.done := NEW (Thread.Condition); >> (m3gdb) >> 136 com.first := 1; >> (m3gdb) >> 137 com.next := 1; >> (m3gdb) >> 138 com.last := 1; >> (m3gdb) >> 139 t := NEW (T, id := 1, limit := 15); >> (m3gdb) >> 141 INC (com.count); >> (m3gdb) >> 142 Int (com.count, 5, ": "); >> (m3gdb) >> 144 th := Thread.Fork (t); >> (m3gdb) >> 145 t.thread := th; >> (m3gdb) >> 146 LOCK com DO >> (m3gdb) >> 147 Thread.Broadcast (com.done); >> (m3gdb) >> 148 END; >> (m3gdb) >> 151 LOCK com DO >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> >> >> ^C[New process 15851] >> ^C >> Program received signal SIGINT, Interrupt. >> [Switching to process 15851] >> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) thread apply all bt >> >> Thread 11 (process 15851, thread 0x85cc4000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc40b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> Current language: auto; currently c >> >> Thread 10 (process 15851, thread 0x84895400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848954b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >> mutex=0x2dc1d0dc, >> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >> uthread_cond.c:431 >> #3 0x0dc225a7 in _thread_gc (arg=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >> #4 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #5 0x0000002b in ?? () >> #6 0x00000000 in ?? () >> >> Thread 9 (process 15851, thread 0x84895c00): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x84895cb0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> >> Thread 8 (process 15851, thread 0x84895000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848950b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 7 (process 15851, thread 0x88197400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881974b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 6 (process 15851, thread 0x88197000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881970b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 5 (process 15851, thread 0x8931f800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f8b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 4 (process 15851, thread 0x8931f000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f0b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 3 (process 15851, thread 0x856ab400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0x2e493 >> >> Thread 2 (process 15851): >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >> fname=0x2dc1d0c8 "", lineno=767676616) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >> time_remaining=0x7de7fc60) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >> rem=0x7de7fc60) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021a29 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c0086b3 in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:110 >> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> >> Thread 1 (process 15851, thread 0x85cc4800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc48b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >> table. >> ) at ../Main.m3:153 >> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:399 >> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:113 >> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:122 >> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >> at _m3main.mc:4 >> #11 0x1c00268c in ___start () >> #12 0x1c0025df in _start () >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) >> >> I also tried increasing the default stack size; it didn't help. >> If you want me to test anything, I'll be happy to try it. >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Mon Oct 19 00:59:48 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 00:59:48 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Quoting Tony Hosking : > Do we have any idea when this problem started on OpenBSD? Has it > always been there? No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ Build #22 on 27. September was the last good one. Build #23 on 29. September hangs at p007. > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? Jay's server is offline again. I'll try again tomorrow morning. I could have thought of @M3debugthreads myself :-/ 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 Mon Oct 19 00:27:12 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sun, 18 Oct 2009 16:27:12 -0600 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <25EDFCD1-6950-4911-9192-E6CCD84B702F@hotmail.com> We have no real history on OpenBSD, so assume always was this way. - Jay (phone) On Oct 18, 2009, at 12:55 PM, Tony Hosking wrote: > Do we have any idea when this problem started on OpenBSD? Has it > always been there? > > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? >> >> >> >> 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>>> Thread 1 (process 23708, thread 0x862c9400): >>>>> #0 _thread_kern_sched (scp=Cannot access memory at address >>>>> 0xbb319 >>>>> ) >>>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>>> Cannot access memory at address 0xbb315 >>>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>>> (m3gdb) >>>> >>>> So what is thread 1 up to? >>> >>> I don't really understand what's going on there. But I made another >>> test which might or might not be helpful. I single-stepped in >>> thread 1 >>> until it blocks. We get actually no output from other threads then >>> (though several have been started, but then thread 3 seems to be >>> corrupt. Here is the debugger session: >>> >>> >>> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >>> GNU gdb plus Modula-3 6.4 >>> Copyright 2005 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 "i686-openbsd"... >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >>> (m3gdb) r >>> Starting program: /home/hudson/workspace/cm3-lastok-build- >>> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >>> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >>> [Switching to process 15851, thread 0x85cc4800] >>> >>> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >>> 127 BEGIN >>> Current language: auto; currently Modula-3 >>> (m3gdb) n >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) >>> Single stepping until exit from function __i686.get_pc_thunk.bx, >>> which has no line number information. >>> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >>> 157 RTIO.Flush (); >>> (m3gdb) >>> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >>> at ../src/runtime/common/RTLinker.m3:121 >>> 121 IF (m = NIL) THEN RETURN END; >>> (m3gdb) >>> 122 AddUnitI(m); >>> (m3gdb) >>> >>> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) finish >>> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >>> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) n >>> 131 iolock := NEW (MUTEX); >>> (m3gdb) >>> 132 stop := NEW (Thread.Condition); >>> (m3gdb) l >>> 127 BEGIN >>> 128 >>> 129 (* Thread.MinDefaultStackSize (20000); *) >>> 130 >>> 131 iolock := NEW (MUTEX); >>> 132 stop := NEW (Thread.Condition); >>> 133 >>> 134 com := NEW (A, limit := 2000); >>> 135 com.done := NEW (Thread.Condition); >>> 136 com.first := 1; >>> (m3gdb) n >>> 134 com := NEW (A, limit := 2000); >>> (m3gdb) >>> 135 com.done := NEW (Thread.Condition); >>> (m3gdb) >>> 136 com.first := 1; >>> (m3gdb) >>> 137 com.next := 1; >>> (m3gdb) >>> 138 com.last := 1; >>> (m3gdb) >>> 139 t := NEW (T, id := 1, limit := 15); >>> (m3gdb) >>> 141 INC (com.count); >>> (m3gdb) >>> 142 Int (com.count, 5, ": "); >>> (m3gdb) >>> 144 th := Thread.Fork (t); >>> (m3gdb) >>> 145 t.thread := th; >>> (m3gdb) >>> 146 LOCK com DO >>> (m3gdb) >>> 147 Thread.Broadcast (com.done); >>> (m3gdb) >>> 148 END; >>> (m3gdb) >>> 151 LOCK com DO >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> >>> >>> ^C[New process 15851] >>> ^C >>> Program received signal SIGINT, Interrupt. >>> [Switching to process 15851] >>> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) thread apply all bt >>> >>> Thread 11 (process 15851, thread 0x85cc4000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc40b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> Current language: auto; currently c >>> >>> Thread 10 (process 15851, thread 0x84895400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848954b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >>> mutex=0x2dc1d0dc, >>> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >>> uthread_cond.c:431 >>> #3 0x0dc225a7 in _thread_gc (arg=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >>> #4 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #5 0x0000002b in ?? () >>> #6 0x00000000 in ?? () >>> >>> Thread 9 (process 15851, thread 0x84895c00): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x84895cb0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> >>> Thread 8 (process 15851, thread 0x84895000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848950b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 7 (process 15851, thread 0x88197400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881974b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 6 (process 15851, thread 0x88197000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881970b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 5 (process 15851, thread 0x8931f800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f8b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 4 (process 15851, thread 0x8931f000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f0b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 3 (process 15851, thread 0x856ab400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0x2e493 >>> >>> Thread 2 (process 15851): >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >>> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >>> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >>> fname=0x2dc1d0c8 "", lineno=767676616) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >>> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >>> time_remaining=0x7de7fc60) >>> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >>> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >>> rem=0x7de7fc60) >>> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >>> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:740 >>> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:1253 >>> #8 0x1c021a29 in SuspendOthers () >>> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >>> #9 0x1c0086b3 in CollectSomeInStateZero () >>> at ../src/runtime/common/RTCollector.m3:735 >>> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >>> RTCollector.m3:709 >>> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >>> RTCollector.m3:643 >>> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >>> in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:363 >>> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:222 >>> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >>> 35 in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:120 >>> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:110 >>> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #18 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #19 0x0000002b in ?? () >>> #20 0x00000000 in ?? () >>> >>> Thread 1 (process 15851, thread 0x85cc4800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc48b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >>> table. >>> ) at ../Main.m3:153 >>> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:399 >>> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:113 >>> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:122 >>> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >>> at _m3main.mc:4 >>> #11 0x1c00268c in ___start () >>> #12 0x1c0025df in _start () >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >>> >>> I also tried increasing the default stack size; it didn't help. >>> If you want me to test anything, I'll be happy to try it. >>> >>> 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 >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 03:57:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 21:57:57 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Message-ID: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Aha. That is helpful. I have a feeling it might be related to the changes I made to Thread.Fork. But wait, this is code on the RC path right? Which has a different history? On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Do we have any idea when this problem started on OpenBSD? Has it >> always been there? > > No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ > Build #22 on 27. September was the last good one. > Build #23 on 29. September hangs at p007. > >> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >> >>> OK, now this is more interesting. We see that thread 2 is trying >>> to get a GC cycle initiated by stopping the other threads. I >>> am guessing that they are not responding to the thread signal >>> being sent to them. Can you try with @M3debugthreads? > > Jay's server is offline again. I'll try again tomorrow morning. > I could have thought of @M3debugthreads myself :-/ > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 04:04:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 22:04:52 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Message-ID: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> I don't see anything that changed in the RC threads implementation between 9/27 and 9/29. Did something change in the wrappers? Or in the config file for OpenBSD? On 18 Oct 2009, at 21:57, Tony Hosking wrote: > Aha. That is helpful. I have a feeling it might be related to the > changes I made to Thread.Fork. But wait, this is code on the RC > path right? Which has a different history? > > On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Do we have any idea when this problem started on OpenBSD? Has it >>> always been there? >> >> No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >> Build #22 on 27. September was the last good one. >> Build #23 on 29. September hangs at p007. >> >>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>> >>>> OK, now this is more interesting. We see that thread 2 is >>>> trying to get a GC cycle initiated by stopping the other >>>> threads. I am guessing that they are not responding to the >>>> thread signal being sent to them. Can you try with >>>> @M3debugthreads? >> >> Jay's server is offline again. I'll try again tomorrow morning. >> I could have thought of @M3debugthreads myself :-/ >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hendrik at topoi.pooq.com Mon Oct 19 04:15:13 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sun, 18 Oct 2009 22:15:13 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 Message-ID: <20091019021513.GA27389@topoi.pooq.com> m3gdb doesn's seem to install. Is this a known problem? Has it been fixed in CVS and therefore should be OK in RC4? Or is it likely I've done something horribly wrong before now? (I have been doing a number of installations and ununstallations on this machine to provide you with error reports, so it's conceivable that there's some crud around somewhere.) hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog Script started, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit Script done, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik From wagner at elegosoft.com Mon Oct 19 08:16:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 08:16:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091019081656.izo994bns0gk48s0@mail.elegosoft.com> Quoting Tony Hosking : > I don't see anything that changed in the RC threads implementation > between 9/27 and 9/29. Did something change in the wrappers? Or in > the config file for OpenBSD? I just noticed that p007 seems to have been commented out in the test runs before 9/29 :-/ So Jay is probably right, and we have no reliable time frame for the bug. cd ../src/p0/p005 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p006 --- a bit more complicated cd ../src/p0/p006 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p008 --- thread alerts The test itself changed at that time, though. I'll attach the diffs nonetheless. > On 18 Oct 2009, at 21:57, Tony Hosking wrote: > >> Aha. That is helpful. I have a feeling it might be related to the >> changes I made to Thread.Fork. But wait, this is code on the RC >> path right? Which has a different history? Yes, it's in the release branch. I used this command, in case anybody wants to check, too. I slightly extended the time frame to be on the safe side: cvs diff -u -r release_branch_cm3_5_8:2009-09-26 \ -r release_branch_cm3_5_8:2009-09-30 \ m3-libs/*/src m3-sys/*/src > ~/tmp/p007-diffs Jay's system is still offline. I'll try again this evening. Olaf >> On 18 Oct 2009, at 18:59, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>> Do we have any idea when this problem started on OpenBSD? Has it >>>> always been there? >>> >>> No. Look at >>> http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >>> Build #22 on 27. September was the last good one. >>> Build #23 on 29. September hangs at p007. >>> >>>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>>> >>>>> OK, now this is more interesting. We see that thread 2 is >>>>> trying to get a GC cycle initiated by stopping the other >>>>> threads. I am guessing that they are not responding to the >>>>> thread signal being sent to them. Can you try with >>>>> @M3debugthreads? >>> >>> Jay's server is offline again. I'll try again tomorrow morning. >>> I could have thought of @M3debugthreads myself :-/ >>> >>> 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 -------------- ? m3-libs/bitvector/src/BitVector.i3.html ? m3-libs/libm3/src/pickle/ver2/Pickle2.m3+ ? m3-libs/m3core/src/solgnu-thread-diff ? m3-libs/m3core/src/runtime/common/RTLinker.i3+ ? m3-libs/m3core/src/runtime/common/RTLinker.m3+ ? m3-libs/sysutils/src/FSUtils.m3-new ? m3-sys/cm3/src/Makefile.m3.ps ? m3-sys/cm3/src/config/pdiffs ? m3-sys/cminstall/src/config/FreeBSD4x ? m3-sys/cminstall/src/config/pdiffs ? m3-sys/m3middle/src/M3ID.m3-2008-01-29 ? m3-sys/m3middle/src/TWord.m3-xxx ? m3-sys/m3scanner/src/M3Token.i3 ? m3-sys/m3scanner/src/M3Token.m3 ? m3-sys/m3tests-x/src/p0/p100 ? m3-sys/m3tests-x/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests-x/src/p1/p116b ? m3-sys/m3tests-x/src/r0/r003/FreeBSD4 ? m3-sys/m3tests/src/Test.compile ? m3-sys/m3tests/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests/src/p2/FreeBSD4 ? m3-sys/m3tests/src/p2/p223/FreeBSD4 Index: m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -u -u -r1.41.2.1 -r1.41.2.2 --- m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 13 Sep 2009 01:26:41 -0000 1.41.2.1 +++ m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 29 Sep 2009 10:45:40 -0000 1.41.2.2 @@ -460,7 +460,7 @@ (*------------------------------------------------------------ Fork, Join ---*) CONST - MaxIdle = 10; + MaxIdle = 0; VAR (* LL=activeMu *) allThreads : Activation := NIL; (* global list of active threads *) @@ -588,7 +588,7 @@ (* Since we're no longer slotted, we cannot touch traced refs. *) (* remove ourself from the list of active threads *) - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); IF allThreads = me THEN allThreads := me.next; END; me.next.prev := me.prev; me.prev.next := me.next; @@ -636,7 +636,7 @@ act := t.act; act.handle := CreateThread(NIL, stack_size, ThreadBase, act, CREATE_SUSPENDED, ADR(id)); - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); act.next := allThreads; act.prev := allThreads.prev; allThreads.prev.next := act; @@ -801,7 +801,7 @@ VAR me := GetActivation(); BEGIN <*ASSERT me # NIL*> - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); INC (suspend_cnt); IF (suspend_cnt = 1) THEN StopWorld(me) END; Index: m3-sys/cm3/src/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/cm3/src/Main.m3,v retrieving revision 1.19.2.1 retrieving revision 1.19.2.2 diff -u -u -r1.19.2.1 -r1.19.2.2 --- m3-sys/cm3/src/Main.m3 4 Sep 2009 10:26:39 -0000 1.19.2.1 +++ m3-sys/cm3/src/Main.m3 27 Sep 2009 01:15:22 -0000 1.19.2.2 @@ -9,7 +9,7 @@ IMPORT Builder, Dirs, M3Build, M3Options, Makefile, Msg, Utils, WebFile; IMPORT MxConfig(*, M3Config, CMKey, CMCurrent *); (* IMPORT Fmt, Time; only needed for key and expiration check *) -IMPORT Version; +(* IMPORT Version; *) VAR config : TEXT := NIL; Index: m3-sys/m3tests-x/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests-x/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests-x/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests-x/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests-x/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests-x/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. Index: m3-sys/m3tests/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. From mbishop at esoteriq.org Mon Oct 19 21:28:12 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:28:12 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCBDCC.3020102@esoteriq.org> I don't think it's just you. I remember installing m3gdb (or trying to) and having it not work. I'm retrying now to see if I can get it installed. hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From mbishop at esoteriq.org Mon Oct 19 21:35:47 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:35:47 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <4ADCBF93.2040107@esoteriq.org> Yeah just tried installing again, all I get when I run the install.sh is: installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- And that's it. No m3gdb binary anywhere, and the config.log in m3gdb/LINUXLIBC6 directory has no errors. Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package >> m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From rodney.m.bates at cox.net Mon Oct 19 23:24:17 2009 From: rodney.m.bates at cox.net (Rodney M. Bates) Date: Mon, 19 Oct 2009 16:24:17 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCD901.1010509@cox.net> Hmm, I've never seen this. I don't know where install.sh is coming from. The only thing in the repository I can find by that name is inside the copy of readline that is in gdb, and it is clearly not the script in question. I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, with build or buildship, which runs cm3 in m3-sys/m3gdb, which uses m3-sys/m3gdb/src/m3makefile, which contains. starting at line 126: % build the exportable link and man page and export them cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) BindExport ("m3gdb" & EXE) ManPage ("m3gdb","1") Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, a different name than the one installed. This is no doubt a leftover from m3gdb's being derived from gdb. The line 127 above looks like it takes care of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship command it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as expected. Where does install.sh come from? hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From jay.krell at cornell.edu Tue Oct 20 00:52:41 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:52:41 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <687825D2-21DD-40AF-84F0-E79F7B90A469@hotmail.com> Olaf did fix a problem here, something about hardlink vs. copyfile. - Jay (phone) On Oct 19, 2009, at 1:28 PM, Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From jay.krell at cornell.edu Tue Oct 20 00:55:21 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:55:21 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: cd scripts grep install.sh * It is there. - Jay (phone) On Oct 19, 2009, at 3:24 PM, "Rodney M. Bates" wrote: > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. > I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/ > gdb, > a different name than the one installed. This is no doubt a > leftover from > m3gdb's being derived from gdb. The line 127 above looks like it > takes care > of the rename. > For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship > command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, > as expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From wagner at elegosoft.com Tue Oct 20 10:20:23 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 20 Oct 2009 10:20:23 +0200 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> install.sh is the name of the installation script of each of the cm3-bin-ws-* packages. I seem to remember that m3dgb was just linked on several platforms and the actual installation failed. It will probably be fixed in the RC4 archives, as soon as the remaining thread problems are understood. As all the RC3 archives contain these thread problems they were never announced in the usenet. I had hoped that we would be able to replace them by RC4 (and a final release) soon, but matters are still unresolved. Help fixing the remaining thread problems or any of the other open issues at https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+Release+5.8+RC4 and https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+release+5.8 will be appreciated. Olaf Quoting "Rodney M. Bates" : > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. I always use > scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, > a different name than the one installed. This is no doubt a leftover from > m3gdb's being derived from gdb. The line 127 above looks like it takes care > of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the > cm3 -ship command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as > expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik >> >> >> -- 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 rcoleburn at scires.com Tue Oct 20 18:23:04 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 20 Oct 2009 12:23:04 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: <4ADDAADA.1E75.00D7.1@scires.com> Jay: I think we would need to delve deep into the implementation to be able to answer all your questions precisely. I've attached a short paper by Andrew Birrell "Implementing Condition Variables with Semaphores" that you may find interesting / enlightening. My concern about using multiple mutex with same condition lies in the queuing operations. My recollection is that I've always associated only one mutex with a condition variable, but that you can have multiple conditions associated with the same mutex. I will go back and re-read Nelson again--its been a few years. Regards, Randy Coleburn >>> Jay K 10/18/2009 4:16 AM >>> I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ImplementingCVs.pdf Type: application/pdf Size: 155564 bytes Desc: not available URL: From hendrik at topoi.pooq.com Tue Oct 20 18:23:43 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 12:23:43 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> Message-ID: <20091020162343.GA30861@topoi.pooq.com> On Tue, Oct 20, 2009 at 10:20:23AM +0200, Olaf Wagner wrote: > install.sh is the name of the installation script of each of > the > cm3-bin-ws-* packages. I seem to remember that m3dgb was just > linked > on several platforms and the actual installation failed. It > will probably > be fixed in the RC4 archives, as soon as the remaining thread > problems > are understood. > > As all the RC3 archives contain these thread problems they > were never > announced in the usenet. I had hoped that we would be able to > replace > them by RC4 (and a final release) soon, but matters are still > unresolved. It would be useful if there were a working cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3.tgz available, or mayme a cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3a.tgz before a definitive answer to the thread problems. If nothing else, it could tell us if the installation problem with m3gdb has indeed been solved. -- hendrik From hendrik at topoi.pooq.com Tue Oct 20 21:35:12 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 15:35:12 -0400 Subject: [M3devel] cvs size Message-ID: <20091020193512.GA31133@topoi.pooq.com> I just downloaded the entire CVS using cvsup and the control file with the non-comment lines *default host=modula3.elegosoft.com *default base=/farhome/hendrik/cm3/CVSUP/cvs *default prefix=/farhome/hendrik/cm3/CVSUP/cvs *default compress *default preserve and it ended up using a big pile of disk space: #cvsroot hendrik at lovesong:~/cm3/CVSUP$ du -s cvs 1390120 cvs hendrik at lovesong:~/cm3/CVSUP$ Is it likely that I've got everything that the m3 developers might want to have in a distributed versioning system? If so, I'll start experimenting with conversions. -- hendrik From jay.krell at cornell.edu Tue Oct 20 22:26:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 13:26:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ADDAADA.1E75.00D7.1@scires.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: I will read the paper, thanks. The java code demonstrates I believe some important applicable methods. I hope to have a "new" ThreadWin32.m3 "soon". In particular, no per-thread event, no wait lists, and counter to help matching up condition waits and signals. And no giant lock. And stil an efficient mutex with no kernel involvement unless there is contention, could/ might use win32 criticalsection with little extra to avoid recursion, or could use something smaller. And no use of SignalObjectAndWait whose documentation recently changed to remove the atomicity claim! - Jay (phone) On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" wrote: > Jay: > > I think we would need to delve deep into the implementation to be > able to answer all your questions precisely. > > I've attached a short paper by Andrew Birrell "Implementing > Condition Variables with Semaphores" that you may find interesting / > enlightening. > > My concern about using multiple mutex with same condition lies in > the queuing operations. My recollection is that I've always > associated only one mutex with a condition variable, but that you > can have multiple conditions associated with the same mutex. > > I will go back and re-read Nelson again--its been a few years. > > Regards, > Randy Coleburn > > >>> Jay K 10/18/2009 4:16 AM >>> > I still have questions here. > > 1) > Page 93 of the Nelson book: > A monitor consists of some data, a mutex, and zero or more condition > variables. A particular condition variable is always used > in conjunction with the same mutex and its data. > > Doesn't this contradict the point made here? > Does a condition variable always map to the same mutex > or not? > > Or is this merely describing a typical usage pattern that is > a subset of what interface Thread allows? > > > 2) > Can Wait only be satisfied by Signal/Broadcast, > or also just via UnlockMutex? > > > Depending on the answer to these questions, > it seems you can largely merge mutex and condition variable. > > > Condition variable is basically waiting for a > thread to exit a mutex. > Which is very very similar to LockMutex, except > that it doesn't want to take the mutex in the uncontended > case, it actually wants to wait for another thread > to both acquire and release the mutex. > > > I suspect I'm wrong on both of these. > That condition variable really can use multiple mutexes. > That exiting a mutex has no obligation to wake condition variables, > though it might be in good faith to do so...er..if it is > in good faith to not require programmer to use Signal/Broadcast. > > > Thanks, > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 19:13:03 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > That seems a little strange to me but I guess I'll have to keep it > in mind. > > - Jay > > > From: hosking at cs.purdue.edu > To: mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 11:00:36 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > Sorry, yes, you are right of course! The Modula-3 spec (and the > current pthreads-based implementation as also the win32 > implementation I expect) do allow a condition variable being > mediated by different mutexes. My comment was clouded by my > recollection from the pthreads spec that for pthread mutex/cv > behavior for other than 1 mutex per cv is undefined. This confusion > may have been the source of prior bugs in the pthreads threading > implementation, but those bugs are gone now. We support the M3 spec > properly. > > On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: > > --Apple-Mail-96--321618545 > Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes > Content-Transfer-Encoding: 7bit > > In general, it is OK in M3 to associate multiple conditions with the > same mutex. But not vice versa. > > On 8 Oct 2009, at 09:32, Jay K wrote: > > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay > > > --Apple-Mail-96--321618545 > Content-Type: text/html; > charset=US-ASCII > Content-Transfer-Encoding: quoted-printable > > space; = > -webkit-line-break: after-white-space; ">
apple-content-edited=3D"true"> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- > family: = > Helvetica; font-size: 12px; font-style: normal; font-variant: > normal; = > font-weight: normal; letter-spacing: normal; line-height: normal; = > orphans: 2; text-align: auto; text-indent: 0px; text-transform: > none; = > white-space: normal; widows: 2; word-spacing: 0px; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- > adjust: = > auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = > after-white-space; "> style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = > -webkit-line-break: after-white-space; "> span" = > style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">In = > general, it is OK in M3 to associate multiple conditions with the > same = > mutex.  But not vice versa.
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill > Sans'"> class=3D"Apple-style-span" style=3D"font-size: = > medium;">
span>
On 8 Oct > 2009, = > at 09:32, Jay K wrote:

class=3D"Apple-interchange-newline">
class=3D"Apple-style-span" style=3D"border-collapse: separate; > color: = > rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: = > normal; font-variant: normal; font-weight: normal; letter-spacing: = > normal; line-height: normal; orphans: 2; text-align: auto; text- > indent: = > 0px; text-transform: none; white-space: normal; widows: 2; word- > spacing: = > 0px; -webkit-border-horizontal-spacing: 0px; = > -webkit-border-vertical-spacing: 0px; = > -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = > auto; -webkit-text-stroke-width: 0px; ">
style=3D"font-size: 10pt; font-family: Verdana; ">condition = > variables/win32
 

So..one way I think about condition = > variables
is that you want to be woken when someone > else
leaves = > the mutex that guards the data that you are dealing with.
You > want to = > know when another thread modifies the data.
(If you have a = > reader/writer lock, you only want to be
woken when someone exits > a = > write.)
 

Now, if you consider a producer/consumer = > queue.
There are two interesting occurences.
Transitions from = > empty to non-empty
and transitions from full to non-full = > (optionally,
if it is fixed size).
 

Consumers > wait = > for empty to non-empty.
Consumers signal full to = > non-full.
Producers wait for full to non-full.
Producers > signal = > non-empty to empty.
 

So, in this case, one mutex is = > likely used with with two condition = > variables.
 

But, what if we take a simplifying = > deoptimization and assume that a condition
variable is only ever = > associated with one mutex?
Anyone existing that mutex wakes up > anyone = > waiting on any condition associated with it?
Like, a condition = > variable I think becomes stateless and everything is
about the = > mutex?
 
 
What is the = > downside?
 

Condition variables are allowed to have = > spurious wakeups.
This would "just" increase them. Too = > much?
 

So, therefore, what would be wrong with the = > following design?
 a mutex contains an event class=3D"Apple-converted-space"> 
 and a number > of = > waiters, zero or non-zero class=3D"Apple-converted-space"> 
 if a mutex is = > exiting with a non-zero number of waiters, signal the = > event
 

To handle Signal vs. Broadcast
method = > 1:
 the number of waiters might be interlocked
 the = > woken would decrement it
 if it isn't zero, signal the event = > again
 

method 2:
 the number of waiters is > both = > an integer and a semaphore
 and the lock exiter raises the = > semaphore by the the integer

 
method 3:
 it > is = > not an auto-reset event and there is a count
  and when the = > count goes to 0, reset the event
 I think in this case you > have = > to maintain a "wait generation" class=3D"Apple-converted-space"> 
 so that new = > waiters don't prevent the count from ever hitting 0.
 I > think = > this #3 is what Java might be doing, and is described here:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation > Count = > Solution"

 
also:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = > Solution
Evaluating the SetEvent Solution
Incorrectness -- > class=3D"Apple-converted-space"> 
 

Is > that = > incorrect case really necessarily incorrect?
It seems unfair, > since = > first waiter should be first woken, but..?

 
Am I > missing = > something? A lot?
 

 - = > Jay

= > > --Apple-Mail-96--321618545-- > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Tue Oct 20 23:05:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 20 Oct 2009 17:05:52 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Should we not also consider fixing any problems in the existing Win32 threading? That paper does give a very straightforward recipe for building Moulda-3 style mutex/condition semantics using semaphores, which Windows does provide. On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > I will read the paper, thanks. > > The java code demonstrates I believe some important applicable > methods. I hope to have a "new" ThreadWin32.m3 "soon". In > particular, no per-thread event, no wait lists, and counter to help > matching up condition waits and signals. And no giant lock. And stil > an efficient mutex with no kernel involvement unless there is > contention, could/might use win32 criticalsection with little extra > to avoid recursion, or could use something smaller. And no use of > SignalObjectAndWait whose documentation recently changed to remove > the atomicity claim! > > - Jay (phone) > > On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" > wrote: > >> Jay: >> >> I think we would need to delve deep into the implementation to be >> able to answer all your questions precisely. >> >> I've attached a short paper by Andrew Birrell "Implementing >> Condition Variables with Semaphores" that you may find >> interesting / enlightening. >> >> My concern about using multiple mutex with same condition lies in >> the queuing operations. My recollection is that I've always >> associated only one mutex with a condition variable, but that you >> can have multiple conditions associated with the same mutex. >> >> I will go back and re-read Nelson again--its been a few years. >> >> Regards, >> Randy Coleburn >> >> >>> Jay K 10/18/2009 4:16 AM >>> >> I still have questions here. >> >> 1) >> Page 93 of the Nelson book: >> A monitor consists of some data, a mutex, and zero or more condition >> variables. A particular condition variable is always used >> in conjunction with the same mutex and its data. >> >> Doesn't this contradict the point made here? >> Does a condition variable always map to the same mutex >> or not? >> >> Or is this merely describing a typical usage pattern that is >> a subset of what interface Thread allows? >> >> >> 2) >> Can Wait only be satisfied by Signal/Broadcast, >> or also just via UnlockMutex? >> >> >> Depending on the answer to these questions, >> it seems you can largely merge mutex and condition variable. >> >> >> Condition variable is basically waiting for a >> thread to exit a mutex. >> Which is very very similar to LockMutex, except >> that it doesn't want to take the mutex in the uncontended >> case, it actually wants to wait for another thread >> to both acquire and release the mutex. >> >> >> I suspect I'm wrong on both of these. >> That condition variable really can use multiple mutexes. >> That exiting a mutex has no obligation to wake condition variables, >> though it might be in good faith to do so...er..if it is >> in good faith to not require programmer to use Signal/Broadcast. >> >> >> Thanks, >> - Jay >> >> >> >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 19:13:03 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> That seems a little strange to me but I guess I'll have to keep it >> in mind. >> >> - Jay >> >> >> From: hosking at cs.purdue.edu >> To: mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 11:00:36 -0400 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> Sorry, yes, you are right of course! The Modula-3 spec (and the >> current pthreads-based implementation as also the win32 >> implementation I expect) do allow a condition variable being >> mediated by different mutexes. My comment was clouded by my >> recollection from the pthreads spec that for pthread mutex/cv >> behavior for other than 1 mutex per cv is undefined. This >> confusion may have been the source of prior bugs in the pthreads >> threading implementation, but those bugs are gone now. We support >> the M3 spec properly. >> >> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >> >> Why can't you use the same condition variable with different mutexes? >> >> This is dynamic, up to the M3 programmer, no? >> >> Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >> condition variables/win32 >> >> >> So..one way I think about condition variables >> is that you want to be woken when someone else >> leaves the mutex that guards the data that you are dealing with. >> You want to know when another thread modifies the data. >> (If you have a reader/writer lock, you only want to be >> woken when someone exits a write.) >> >> >> Now, if you consider a producer/consumer queue. >> There are two interesting occurences. >> Transitions from empty to non-empty >> and transitions from full to non-full (optionally, >> if it is fixed size). >> >> >> Consumers wait for empty to non-empty. >> Consumers signal full to non-full. >> Producers wait for full to non-full. >> Producers signal non-empty to empty. >> >> >> So, in this case, one mutex is likely used with with two condition >> variables. >> >> >> But, what if we take a simplifying deoptimization and assume that a >> condition >> variable is only ever associated with one mutex? >> Anyone existing that mutex wakes up anyone waiting on any condition >> associated with it? >> Like, a condition variable I think becomes stateless and everything >> is >> about the mutex? >> >> >> What is the downside? >> >> >> Condition variables are allowed to have spurious wakeups. >> This would "just" increase them. Too much? >> >> >> So, therefore, what would be wrong with the following design? >> a mutex contains an event >> and a number of waiters, zero or non-zero >> if a mutex is exiting with a non-zero number of waiters, signal the >> event >> >> >> To handle Signal vs. Broadcast >> method 1: >> the number of waiters might be interlocked >> the woken would decrement it >> if it isn't zero, signal the event again >> >> >> method 2: >> the number of waiters is both an integer and a semaphore >> and the lock exiter raises the semaphore by the the integer >> >> >> method 3: >> it is not an auto-reset event and there is a count >> and when the count goes to 0, reset the event >> I think in this case you have to maintain a "wait generation" >> so that new waiters don't prevent the count from ever hitting 0. >> I think this #3 is what Java might be doing, and is described here: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> "3.3. The Generation Count Solution" >> >> >> also: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> 3.2. The SetEvent Solution >> Evaluating the SetEvent Solution >> Incorrectness -- >> >> >> Is that incorrect case really necessarily incorrect? >> It seems unfair, since first waiter should be first woken, but..? >> >> >> Am I missing something? A lot? >> >> >> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>
On 8 Oct >> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:04:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:04:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Also removing our giant lock would be good either way, if possible. - Jay (phone) On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > Something doesn't add up. I'll have to reread. The paper I think > assumes one mutex per condition, also clearly is talking about "our > library". I'll need to compare the paper and the library. Could be > the paper is wrong. A lot of literature here depends on atomic > SignalAndWait but the docs just changed and no longer claim atomicity. > > - Jay (phone) > > On Oct 20, 2009, at 2:05 PM, Tony Hosking > wrote: > >> Should we not also consider fixing any problems in the existing >> Win32 threading? That paper does give a very straightforward >> recipe for building Moulda-3 style mutex/condition semantics using >> semaphores, which Windows does provide. >> >> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >> >>> I will read the paper, thanks. >>> >>> The java code demonstrates I believe some important applicable >>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>> particular, no per-thread event, no wait lists, and counter to >>> help matching up condition waits and signals. And no giant lock. >>> And stil an efficient mutex with no kernel involvement unless >>> there is contention, could/might use win32 criticalsection with >>> little extra to avoid recursion, or could use something smaller. >>> And no use of SignalObjectAndWait whose documentation recently >>> changed to remove the atomicity claim! >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>> wrote: >>> >>>> Jay: >>>> >>>> I think we would need to delve deep into the implementation to be >>>> able to answer all your questions precisely. >>>> >>>> I've attached a short paper by Andrew Birrell "Implementing >>>> Condition Variables with Semaphores" that you may find >>>> interesting / enlightening. >>>> >>>> My concern about using multiple mutex with same condition lies in >>>> the queuing operations. My recollection is that I've always >>>> associated only one mutex with a condition variable, but that you >>>> can have multiple conditions associated with the same mutex. >>>> >>>> I will go back and re-read Nelson again--its been a few years. >>>> >>>> Regards, >>>> Randy Coleburn >>>> >>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>> I still have questions here. >>>> >>>> 1) >>>> Page 93 of the Nelson book: >>>> A monitor consists of some data, a mutex, and zero or more >>>> condition >>>> variables. A particular condition variable is always used >>>> in conjunction with the same mutex and its data. >>>> >>>> Doesn't this contradict the point made here? >>>> Does a condition variable always map to the same mutex >>>> or not? >>>> >>>> Or is this merely describing a typical usage pattern that is >>>> a subset of what interface Thread allows? >>>> >>>> >>>> 2) >>>> Can Wait only be satisfied by Signal/Broadcast, >>>> or also just via UnlockMutex? >>>> >>>> >>>> Depending on the answer to these questions, >>>> it seems you can largely merge mutex and condition variable. >>>> >>>> >>>> Condition variable is basically waiting for a >>>> thread to exit a mutex. >>>> Which is very very similar to LockMutex, except >>>> that it doesn't want to take the mutex in the uncontended >>>> case, it actually wants to wait for another thread >>>> to both acquire and release the mutex. >>>> >>>> >>>> I suspect I'm wrong on both of these. >>>> That condition variable really can use multiple mutexes. >>>> That exiting a mutex has no obligation to wake condition variables, >>>> though it might be in good faith to do so...er..if it is >>>> in good faith to not require programmer to use Signal/Broadcast. >>>> >>>> >>>> Thanks, >>>> - Jay >>>> >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> That seems a little strange to me but I guess I'll have to keep >>>> it in mind. >>>> >>>> - Jay >>>> >>>> >>>> From: hosking at cs.purdue.edu >>>> To: mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>> current pthreads-based implementation as also the win32 >>>> implementation I expect) do allow a condition variable being >>>> mediated by different mutexes. My comment was clouded by my >>>> recollection from the pthreads spec that for pthread mutex/cv >>>> behavior for other than 1 mutex per cv is undefined. This >>>> confusion may have been the source of prior bugs in the pthreads >>>> threading implementation, but those bugs are gone now. We >>>> support the M3 spec properly. >>>> >>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>> >>>> Why can't you use the same condition variable with different >>>> mutexes? >>>> >>>> This is dynamic, up to the M3 programmer, no? >>>> >>>> Tony Hosking writes: >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> In general, it is OK in M3 to associate multiple conditions with >>>> the >>>> same mutex. But not vice versa. >>>> >>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>> >>>> condition variables/win32 >>>> >>>> >>>> So..one way I think about condition variables >>>> is that you want to be woken when someone else >>>> leaves the mutex that guards the data that you are dealing with. >>>> You want to know when another thread modifies the data. >>>> (If you have a reader/writer lock, you only want to be >>>> woken when someone exits a write.) >>>> >>>> >>>> Now, if you consider a producer/consumer queue. >>>> There are two interesting occurences. >>>> Transitions from empty to non-empty >>>> and transitions from full to non-full (optionally, >>>> if it is fixed size). >>>> >>>> >>>> Consumers wait for empty to non-empty. >>>> Consumers signal full to non-full. >>>> Producers wait for full to non-full. >>>> Producers signal non-empty to empty. >>>> >>>> >>>> So, in this case, one mutex is likely used with with two condition >>>> variables. >>>> >>>> >>>> But, what if we take a simplifying deoptimization and assume that a >>>> condition >>>> variable is only ever associated with one mutex? >>>> Anyone existing that mutex wakes up anyone waiting on any condition >>>> associated with it? >>>> Like, a condition variable I think becomes stateless and >>>> everything is >>>> about the mutex? >>>> >>>> >>>> What is the downside? >>>> >>>> >>>> Condition variables are allowed to have spurious wakeups. >>>> This would "just" increase them. Too much? >>>> >>>> >>>> So, therefore, what would be wrong with the following design? >>>> a mutex contains an event >>>> and a number of waiters, zero or non-zero >>>> if a mutex is exiting with a non-zero number of waiters, signal the >>>> event >>>> >>>> >>>> To handle Signal vs. Broadcast >>>> method 1: >>>> the number of waiters might be interlocked >>>> the woken would decrement it >>>> if it isn't zero, signal the event again >>>> >>>> >>>> method 2: >>>> the number of waiters is both an integer and a semaphore >>>> and the lock exiter raises the semaphore by the the integer >>>> >>>> >>>> method 3: >>>> it is not an auto-reset event and there is a count >>>> and when the count goes to 0, reset the event >>>> I think in this case you have to maintain a "wait generation" >>>> so that new waiters don't prevent the count from ever hitting 0. >>>> I think this #3 is what Java might be doing, and is described here: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> "3.3. The Generation Count Solution" >>>> >>>> >>>> also: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> 3.2. The SetEvent Solution >>>> Evaluating the SetEvent Solution >>>> Incorrectness -- >>>> >>>> >>>> Is that incorrect case really necessarily incorrect? >>>> It seems unfair, since first waiter should be first woken, but..? >>>> >>>> >>>> Am I missing something? A lot? >>>> >>>> >>>> - Jay >>>> >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style-span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">In = >>>> general, it is OK in M3 to associate multiple conditions with the >>>> same = >>>> mutex.  But not vice versa.
>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">>>> class=3D"Apple-style-span" style=3D"font-size: = >>>> medium;">
>>> span>>>>
On 8 Oct >>>> 2009, = >>>> at 09:32, Jay K wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0px; ">
>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>> variables/win32
 

So..one way I think about >>>> condition = >>>> variables
is that you want to be woken when someone >>>> else
leaves = >>>> the mutex that guards the data that you are dealing with.
You >>>> want to = >>>> know when another thread modifies the data.
(If you have a = >>>> reader/writer lock, you only want to be
woken when someone >>>> exits a = >>>> write.)
 

Now, if you consider a producer/consumer = >>>> queue.
There are two interesting occurences.
Transitions >>>> from = >>>> empty to non-empty
and transitions from full to non-full = >>>> (optionally,
if it is fixed size).
 

Consumers >>>> wait = >>>> for empty to non-empty.
Consumers signal full to = >>>> non-full.
Producers wait for full to non-full.
Producers >>>> signal = >>>> non-empty to empty.
 

So, in this case, one mutex >>>> is = >>>> likely used with with two condition = >>>> variables.
 

But, what if we take a simplifying = >>>> deoptimization and assume that a condition
variable is only >>>> ever = >>>> associated with one mutex?
Anyone existing that mutex wakes up >>>> anyone = >>>> waiting on any condition associated with it?
Like, a condition = >>>> variable I think becomes stateless and everything is
about the = >>>> mutex?
 
 
What is the = >>>> downside?
 

Condition variables are allowed to >>>> have = >>>> spurious wakeups.
This would "just" increase them. Too = >>>> much?
 

So, therefore, what would be wrong with >>>> the = >>>> following design?
 a mutex contains an event>>> class=3D"Apple-converted-space"> 
 and a >>>> number of = >>>> waiters, zero or non-zero>>> class=3D"Apple-converted-space"> 
 if a mutex >>>> is = >>>> exiting with a non-zero number of waiters, signal the = >>>> event
 

To handle Signal vs. Broadcast
method = >>>> 1:
 the number of waiters might be >>>> interlocked
 the = >>>> woken would decrement it
 if it isn't zero, signal the >>>> event = >>>> again
 

method 2:
 the number of waiters >>>> is both = >>>> an integer and a semaphore
 and the lock exiter raises >>>> the = >>>> semaphore by the the integer

 
method >>>> 3:
 it is = >>>> not an auto-reset event and there is a count
  and when >>>> the = >>>> count goes to 0, reset the event
 I think in this case >>>> you have = >>>> to maintain a "wait generation">>> class=3D"Apple-converted-space"> 
 so that >>>> new = >>>> waiters don't prevent the count from ever hitting 0.
 I >>>> think = >>>> this #3 is what Java might be doing, and is described here:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>> Generation Count = >>>> Solution"

 
also:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>> >>> class=3D"Apple-converted-space"> 
 

Is >>>> that = >>>> incorrect case really necessarily incorrect?
It seems unfair, >>>> since = >>>> first waiter should be first woken, but..?

 
Am I >>>> missing = >>>> something? A lot?
 

 - = >>>> Jay

= >>>> >>>> --Apple-Mail-96--321618545-- >>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 02:58:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 17:58:28 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: Something doesn't add up. I'll have to reread. The paper I think assumes one mutex per condition, also clearly is talking about "our library". I'll need to compare the paper and the library. Could be the paper is wrong. A lot of literature here depends on atomic SignalAndWait but the docs just changed and no longer claim atomicity. - Jay (phone) On Oct 20, 2009, at 2:05 PM, Tony Hosking wrote: > Should we not also consider fixing any problems in the existing > Win32 threading? That paper does give a very straightforward recipe > for building Moulda-3 style mutex/condition semantics using > semaphores, which Windows does provide. > > On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > >> I will read the paper, thanks. >> >> The java code demonstrates I believe some important applicable >> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >> particular, no per-thread event, no wait lists, and counter to help >> matching up condition waits and signals. And no giant lock. And >> stil an efficient mutex with no kernel involvement unless there is >> contention, could/might use win32 criticalsection with little extra >> to avoid recursion, or could use something smaller. And no use of >> SignalObjectAndWait whose documentation recently changed to remove >> the atomicity claim! >> >> - Jay (phone) >> >> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >> wrote: >> >>> Jay: >>> >>> I think we would need to delve deep into the implementation to be >>> able to answer all your questions precisely. >>> >>> I've attached a short paper by Andrew Birrell "Implementing >>> Condition Variables with Semaphores" that you may find >>> interesting / enlightening. >>> >>> My concern about using multiple mutex with same condition lies in >>> the queuing operations. My recollection is that I've always >>> associated only one mutex with a condition variable, but that you >>> can have multiple conditions associated with the same mutex. >>> >>> I will go back and re-read Nelson again--its been a few years. >>> >>> Regards, >>> Randy Coleburn >>> >>> >>> Jay K 10/18/2009 4:16 AM >>> >>> I still have questions here. >>> >>> 1) >>> Page 93 of the Nelson book: >>> A monitor consists of some data, a mutex, and zero or more condition >>> variables. A particular condition variable is always used >>> in conjunction with the same mutex and its data. >>> >>> Doesn't this contradict the point made here? >>> Does a condition variable always map to the same mutex >>> or not? >>> >>> Or is this merely describing a typical usage pattern that is >>> a subset of what interface Thread allows? >>> >>> >>> 2) >>> Can Wait only be satisfied by Signal/Broadcast, >>> or also just via UnlockMutex? >>> >>> >>> Depending on the answer to these questions, >>> it seems you can largely merge mutex and condition variable. >>> >>> >>> Condition variable is basically waiting for a >>> thread to exit a mutex. >>> Which is very very similar to LockMutex, except >>> that it doesn't want to take the mutex in the uncontended >>> case, it actually wants to wait for another thread >>> to both acquire and release the mutex. >>> >>> >>> I suspect I'm wrong on both of these. >>> That condition variable really can use multiple mutexes. >>> That exiting a mutex has no obligation to wake condition variables, >>> though it might be in good faith to do so...er..if it is >>> in good faith to not require programmer to use Signal/Broadcast. >>> >>> >>> Thanks, >>> - Jay >>> >>> >>> >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> That seems a little strange to me but I guess I'll have to keep it >>> in mind. >>> >>> - Jay >>> >>> >>> From: hosking at cs.purdue.edu >>> To: mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>> current pthreads-based implementation as also the win32 >>> implementation I expect) do allow a condition variable being >>> mediated by different mutexes. My comment was clouded by my >>> recollection from the pthreads spec that for pthread mutex/cv >>> behavior for other than 1 mutex per cv is undefined. This >>> confusion may have been the source of prior bugs in the pthreads >>> threading implementation, but those bugs are gone now. We support >>> the M3 spec properly. >>> >>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>> >>> Why can't you use the same condition variable with different >>> mutexes? >>> >>> This is dynamic, up to the M3 programmer, no? >>> >>> Tony Hosking writes: >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> In general, it is OK in M3 to associate multiple conditions with the >>> same mutex. But not vice versa. >>> >>> On 8 Oct 2009, at 09:32, Jay K wrote: >>> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >>> >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> style-span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">In = >>> general, it is OK in M3 to associate multiple conditions with the >>> same = >>> mutex.  But not vice versa.
>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">>> class=3D"Apple-style-span" style=3D"font-size: = >>> medium;">
>> span>>>
On 8 Oct >>> 2009, = >>> at 09:32, Jay K wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>> style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0px; ">
>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>> variables/win32
 

So..one way I think about >>> condition = >>> variables
is that you want to be woken when someone >>> else
leaves = >>> the mutex that guards the data that you are dealing with.
You >>> want to = >>> know when another thread modifies the data.
(If you have a = >>> reader/writer lock, you only want to be
woken when someone >>> exits a = >>> write.)
 

Now, if you consider a producer/consumer = >>> queue.
There are two interesting occurences.
Transitions >>> from = >>> empty to non-empty
and transitions from full to non-full = >>> (optionally,
if it is fixed size).
 

Consumers >>> wait = >>> for empty to non-empty.
Consumers signal full to = >>> non-full.
Producers wait for full to non-full.
Producers >>> signal = >>> non-empty to empty.
 

So, in this case, one mutex >>> is = >>> likely used with with two condition = >>> variables.
 

But, what if we take a simplifying = >>> deoptimization and assume that a condition
variable is only >>> ever = >>> associated with one mutex?
Anyone existing that mutex wakes up >>> anyone = >>> waiting on any condition associated with it?
Like, a condition = >>> variable I think becomes stateless and everything is
about the = >>> mutex?
 
 
What is the = >>> downside?
 

Condition variables are allowed to have = >>> spurious wakeups.
This would "just" increase them. Too = >>> much?
 

So, therefore, what would be wrong with the = >>> following design?
 a mutex contains an event>> class=3D"Apple-converted-space"> 
 and a >>> number of = >>> waiters, zero or non-zero>> class=3D"Apple-converted-space"> 
 if a mutex >>> is = >>> exiting with a non-zero number of waiters, signal the = >>> event
 

To handle Signal vs. Broadcast
method = >>> 1:
 the number of waiters might be >>> interlocked
 the = >>> woken would decrement it
 if it isn't zero, signal the >>> event = >>> again
 

method 2:
 the number of waiters is >>> both = >>> an integer and a semaphore
 and the lock exiter raises the = >>> semaphore by the the integer

 
method >>> 3:
 it is = >>> not an auto-reset event and there is a count
  and when >>> the = >>> count goes to 0, reset the event
 I think in this case you >>> have = >>> to maintain a "wait generation">> class=3D"Apple-converted-space"> 
 so that new = >>> waiters don't prevent the count from ever hitting 0.
 I >>> think = >>> this #3 is what Java might be doing, and is described here:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >>> Count = >>> Solution"

 
also:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>> >> class=3D"Apple-converted-space"> 
 

Is >>> that = >>> incorrect case really necessarily incorrect?
It seems unfair, >>> since = >>> first waiter should be first woken, but..?

 
Am I >>> missing = >>> something? A lot?
 

 - = >>> Jay

= >>> >>> --Apple-Mail-96--321618545-- >>> >>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:19:48 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:19:48 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: Also it may be possible/easy to remove the need to create the thread in Modula-3, though dllmain could also address that. - Jay (phone) On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > Also removing our giant lock would be good either way, if possible. > > - Jay (phone) > > On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > >> Something doesn't add up. I'll have to reread. The paper I think >> assumes one mutex per condition, also clearly is talking about "our >> library". I'll need to compare the paper and the library. Could be >> the paper is wrong. A lot of literature here depends on atomic >> SignalAndWait but the docs just changed and no longer claim >> atomicity. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 2:05 PM, Tony Hosking >> wrote: >> >>> Should we not also consider fixing any problems in the existing >>> Win32 threading? That paper does give a very straightforward >>> recipe for building Moulda-3 style mutex/condition semantics using >>> semaphores, which Windows does provide. >>> >>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>> >>>> I will read the paper, thanks. >>>> >>>> The java code demonstrates I believe some important applicable >>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>> particular, no per-thread event, no wait lists, and counter to >>>> help matching up condition waits and signals. And no giant lock. >>>> And stil an efficient mutex with no kernel involvement unless >>>> there is contention, could/might use win32 criticalsection with >>>> little extra to avoid recursion, or could use something smaller. >>>> And no use of SignalObjectAndWait whose documentation recently >>>> changed to remove the atomicity claim! >>>> >>>> - Jay (phone) >>>> >>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> wrote: >>>> >>>>> Jay: >>>>> >>>>> I think we would need to delve deep into the implementation to >>>>> be able to answer all your questions precisely. >>>>> >>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>> Condition Variables with Semaphores" that you may find >>>>> interesting / enlightening. >>>>> >>>>> My concern about using multiple mutex with same condition lies >>>>> in the queuing operations. My recollection is that I've always >>>>> associated only one mutex with a condition variable, but that >>>>> you can have multiple conditions associated with the same mutex. >>>>> >>>>> I will go back and re-read Nelson again--its been a few years. >>>>> >>>>> Regards, >>>>> Randy Coleburn >>>>> >>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>> I still have questions here. >>>>> >>>>> 1) >>>>> Page 93 of the Nelson book: >>>>> A monitor consists of some data, a mutex, and zero or more >>>>> condition >>>>> variables. A particular condition variable is always used >>>>> in conjunction with the same mutex and its data. >>>>> >>>>> Doesn't this contradict the point made here? >>>>> Does a condition variable always map to the same mutex >>>>> or not? >>>>> >>>>> Or is this merely describing a typical usage pattern that is >>>>> a subset of what interface Thread allows? >>>>> >>>>> >>>>> 2) >>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>> or also just via UnlockMutex? >>>>> >>>>> >>>>> Depending on the answer to these questions, >>>>> it seems you can largely merge mutex and condition variable. >>>>> >>>>> >>>>> Condition variable is basically waiting for a >>>>> thread to exit a mutex. >>>>> Which is very very similar to LockMutex, except >>>>> that it doesn't want to take the mutex in the uncontended >>>>> case, it actually wants to wait for another thread >>>>> to both acquire and release the mutex. >>>>> >>>>> >>>>> I suspect I'm wrong on both of these. >>>>> That condition variable really can use multiple mutexes. >>>>> That exiting a mutex has no obligation to wake condition >>>>> variables, >>>>> though it might be in good faith to do so...er..if it is >>>>> in good faith to not require programmer to use Signal/Broadcast. >>>>> >>>>> >>>>> Thanks, >>>>> - Jay >>>>> >>>>> >>>>> >>>>> From: jay.krell at cornell.edu >>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> That seems a little strange to me but I guess I'll have to keep >>>>> it in mind. >>>>> >>>>> - Jay >>>>> >>>>> >>>>> From: hosking at cs.purdue.edu >>>>> To: mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>>> current pthreads-based implementation as also the win32 >>>>> implementation I expect) do allow a condition variable being >>>>> mediated by different mutexes. My comment was clouded by my >>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>> behavior for other than 1 mutex per cv is undefined. This >>>>> confusion may have been the source of prior bugs in the pthreads >>>>> threading implementation, but those bugs are gone now. We >>>>> support the M3 spec properly. >>>>> >>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>> >>>>> Why can't you use the same condition variable with different >>>>> mutexes? >>>>> >>>>> This is dynamic, up to the M3 programmer, no? >>>>> >>>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> In general, it is OK in M3 to associate multiple conditions with >>>>> the >>>>> same mutex. But not vice versa. >>>>> >>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>> >>>>> condition variables/win32 >>>>> >>>>> >>>>> So..one way I think about condition variables >>>>> is that you want to be woken when someone else >>>>> leaves the mutex that guards the data that you are dealing with. >>>>> You want to know when another thread modifies the data. >>>>> (If you have a reader/writer lock, you only want to be >>>>> woken when someone exits a write.) >>>>> >>>>> >>>>> Now, if you consider a producer/consumer queue. >>>>> There are two interesting occurences. >>>>> Transitions from empty to non-empty >>>>> and transitions from full to non-full (optionally, >>>>> if it is fixed size). >>>>> >>>>> >>>>> Consumers wait for empty to non-empty. >>>>> Consumers signal full to non-full. >>>>> Producers wait for full to non-full. >>>>> Producers signal non-empty to empty. >>>>> >>>>> >>>>> So, in this case, one mutex is likely used with with two condition >>>>> variables. >>>>> >>>>> >>>>> But, what if we take a simplifying deoptimization and assume >>>>> that a >>>>> condition >>>>> variable is only ever associated with one mutex? >>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>> condition >>>>> associated with it? >>>>> Like, a condition variable I think becomes stateless and >>>>> everything is >>>>> about the mutex? >>>>> >>>>> >>>>> What is the downside? >>>>> >>>>> >>>>> Condition variables are allowed to have spurious wakeups. >>>>> This would "just" increase them. Too much? >>>>> >>>>> >>>>> So, therefore, what would be wrong with the following design? >>>>> a mutex contains an event >>>>> and a number of waiters, zero or non-zero >>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>> the >>>>> event >>>>> >>>>> >>>>> To handle Signal vs. Broadcast >>>>> method 1: >>>>> the number of waiters might be interlocked >>>>> the woken would decrement it >>>>> if it isn't zero, signal the event again >>>>> >>>>> >>>>> method 2: >>>>> the number of waiters is both an integer and a semaphore >>>>> and the lock exiter raises the semaphore by the the integer >>>>> >>>>> >>>>> method 3: >>>>> it is not an auto-reset event and there is a count >>>>> and when the count goes to 0, reset the event >>>>> I think in this case you have to maintain a "wait generation" >>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>> I think this #3 is what Java might be doing, and is described >>>>> here: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> "3.3. The Generation Count Solution" >>>>> >>>>> >>>>> also: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> 3.2. The SetEvent Solution >>>>> Evaluating the SetEvent Solution >>>>> Incorrectness -- >>>>> >>>>> >>>>> Is that incorrect case really necessarily incorrect? >>>>> It seems unfair, since first waiter should be first woken, but..? >>>>> >>>>> >>>>> Am I missing something? A lot? >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/html; >>>>> charset=US-ASCII >>>>> Content-Transfer-Encoding: quoted-printable >>>>> >>>>> >>>> space; = >>>>> -webkit-line-break: after-white-space; ">
>>>> apple-content-edited=3D"true">>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>> family: = >>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>> normal; = >>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>> normal; = >>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>> none; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0; ">
>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>> after-white-space; ">>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">
>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>> -webkit-line-break: after-white-space; ">>>>> style-span" = >>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">In = >>>>> general, it is OK in M3 to associate multiple conditions with >>>>> the same = >>>>> mutex.  But not vice versa.
>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>> medium;">
>>>> span>>>>>
On 8 Oct >>>>> 2009, = >>>>> at 09:32, Jay K wrote:

>>>> class=3D"Apple-interchange-newline">
>>>> type=3D"cite">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>> color: = >>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>> style: = >>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>> spacing: = >>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>> indent: = >>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>> spacing: = >>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>> -webkit-border-vertical-spacing: 0px; = >>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>> variables/win32
 

So..one way I think about >>>>> condition = >>>>> variables
is that you want to be woken when someone >>>>> else
leaves = >>>>> the mutex that guards the data that you are dealing with.
You >>>>> want to = >>>>> know when another thread modifies the data.
(If you have a = >>>>> reader/writer lock, you only want to be
woken when someone >>>>> exits a = >>>>> write.)
 

Now, if you consider a producer/ >>>>> consumer = >>>>> queue.
There are two interesting occurences.
Transitions >>>>> from = >>>>> empty to non-empty
and transitions from full to non-full = >>>>> (optionally,
if it is fixed size).
 

Consumers >>>>> wait = >>>>> for empty to non-empty.
Consumers signal full to = >>>>> non-full.
Producers wait for full to non-full.
Producers >>>>> signal = >>>>> non-empty to empty.
 

So, in this case, one mutex >>>>> is = >>>>> likely used with with two condition = >>>>> variables.
 

But, what if we take a simplifying = >>>>> deoptimization and assume that a condition
variable is only >>>>> ever = >>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>> up anyone = >>>>> waiting on any condition associated with it?
Like, a >>>>> condition = >>>>> variable I think becomes stateless and everything is
about >>>>> the = >>>>> mutex?
 
 
What is the = >>>>> downside?
 

Condition variables are allowed to >>>>> have = >>>>> spurious wakeups.
This would "just" increase them. Too = >>>>> much?
 

So, therefore, what would be wrong with >>>>> the = >>>>> following design?
 a mutex contains an event>>>> class=3D"Apple-converted-space"> 
 and a >>>>> number of = >>>>> waiters, zero or non-zero>>>> class=3D"Apple-converted-space"> 
 if a >>>>> mutex is = >>>>> exiting with a non-zero number of waiters, signal the = >>>>> event
 

To handle Signal vs. Broadcast
method = >>>>> 1:
 the number of waiters might be >>>>> interlocked
 the = >>>>> woken would decrement it
 if it isn't zero, signal the >>>>> event = >>>>> again
 

method 2:
 the number of waiters >>>>> is both = >>>>> an integer and a semaphore
 and the lock exiter raises >>>>> the = >>>>> semaphore by the the integer

 
method >>>>> 3:
 it is = >>>>> not an auto-reset event and there is a count
  and when >>>>> the = >>>>> count goes to 0, reset the event
 I think in this case >>>>> you have = >>>>> to maintain a "wait generation">>>> class=3D"Apple-converted-space"> 
 so that >>>>> new = >>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>> think = >>>>> this #3 is what Java might be doing, and is described >>>>> here:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>> Generation Count = >>>>> Solution"

 
also:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>> >>>> class=3D"Apple-converted-space"> >>>> span>
 

Is that = >>>>> incorrect case really necessarily incorrect?
It seems unfair, >>>>> since = >>>>> first waiter should be first woken, but..?

 
Am I >>>>> missing = >>>>> something? A lot?
 

 - = >>>>> Jay

= >>>>> >>>>> --Apple-Mail-96--321618545-- >>>>> >>>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 04:35:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 19:35:37 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: While the paper states an assumption of one mutex per condition, it isn't clear that the code depends on it. The paper does not discuss alert but that isn't clearly a problem. Regarding a rewrite, I believe one can use the win32 alert mechanism and owner = GetCurrentThreadId, thereby allowing threads not created by m3 runtime to participate. Will continue investigating. - Jay (phone) On Oct 20, 2009, at 6:19 PM, jay.krell at cornell.edu wrote: > Also it may be possible/easy to remove the need to create the thread > in Modula-3, though dllmain could also address that. > > - Jay (phone) > > On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > >> Also removing our giant lock would be good either way, if possible. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: >> >>> Something doesn't add up. I'll have to reread. The paper I think >>> assumes one mutex per condition, also clearly is talking about >>> "our library". I'll need to compare the paper and the library. >>> Could be the paper is wrong. A lot of literature here depends on >>> atomic SignalAndWait but the docs just changed and no longer claim >>> atomicity. >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 2:05 PM, Tony Hosking >>> wrote: >>> >>>> Should we not also consider fixing any problems in the existing >>>> Win32 threading? That paper does give a very straightforward >>>> recipe for building Moulda-3 style mutex/condition semantics >>>> using semaphores, which Windows does provide. >>>> >>>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>>> >>>>> I will read the paper, thanks. >>>>> >>>>> The java code demonstrates I believe some important applicable >>>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>>> particular, no per-thread event, no wait lists, and counter to >>>>> help matching up condition waits and signals. And no giant lock. >>>>> And stil an efficient mutex with no kernel involvement unless >>>>> there is contention, could/might use win32 criticalsection with >>>>> little extra to avoid recursion, or could use something smaller. >>>>> And no use of SignalObjectAndWait whose documentation recently >>>>> changed to remove the atomicity claim! >>>>> >>>>> - Jay (phone) >>>>> >>>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> > wrote: >>>>> >>>>>> Jay: >>>>>> >>>>>> I think we would need to delve deep into the implementation to >>>>>> be able to answer all your questions precisely. >>>>>> >>>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>>> Condition Variables with Semaphores" that you may find >>>>>> interesting / enlightening. >>>>>> >>>>>> My concern about using multiple mutex with same condition lies >>>>>> in the queuing operations. My recollection is that I've always >>>>>> associated only one mutex with a condition variable, but that >>>>>> you can have multiple conditions associated with the same mutex. >>>>>> >>>>>> I will go back and re-read Nelson again--its been a few years. >>>>>> >>>>>> Regards, >>>>>> Randy Coleburn >>>>>> >>>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>>> I still have questions here. >>>>>> >>>>>> 1) >>>>>> Page 93 of the Nelson book: >>>>>> A monitor consists of some data, a mutex, and zero or more >>>>>> condition >>>>>> variables. A particular condition variable is always used >>>>>> in conjunction with the same mutex and its data. >>>>>> >>>>>> Doesn't this contradict the point made here? >>>>>> Does a condition variable always map to the same mutex >>>>>> or not? >>>>>> >>>>>> Or is this merely describing a typical usage pattern that is >>>>>> a subset of what interface Thread allows? >>>>>> >>>>>> >>>>>> 2) >>>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>>> or also just via UnlockMutex? >>>>>> >>>>>> >>>>>> Depending on the answer to these questions, >>>>>> it seems you can largely merge mutex and condition variable. >>>>>> >>>>>> >>>>>> Condition variable is basically waiting for a >>>>>> thread to exit a mutex. >>>>>> Which is very very similar to LockMutex, except >>>>>> that it doesn't want to take the mutex in the uncontended >>>>>> case, it actually wants to wait for another thread >>>>>> to both acquire and release the mutex. >>>>>> >>>>>> >>>>>> I suspect I'm wrong on both of these. >>>>>> That condition variable really can use multiple mutexes. >>>>>> That exiting a mutex has no obligation to wake condition >>>>>> variables, >>>>>> though it might be in good faith to do so...er..if it is >>>>>> in good faith to not require programmer to use Signal/ >>>>>> Broadcast. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> - Jay >>>>>> >>>>>> >>>>>> >>>>>> From: jay.krell at cornell.edu >>>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> That seems a little strange to me but I guess I'll have to keep >>>>>> it in mind. >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> From: hosking at cs.purdue.edu >>>>>> To: mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> Sorry, yes, you are right of course! The Modula-3 spec (and >>>>>> the current pthreads-based implementation as also the win32 >>>>>> implementation I expect) do allow a condition variable being >>>>>> mediated by different mutexes. My comment was clouded by my >>>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>>> behavior for other than 1 mutex per cv is undefined. This >>>>>> confusion may have been the source of prior bugs in the >>>>>> pthreads threading implementation, but those bugs are gone >>>>>> now. We support the M3 spec properly. >>>>>> >>>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>>> >>>>>> Why can't you use the same condition variable with different >>>>>> mutexes? >>>>>> >>>>>> This is dynamic, up to the M3 programmer, no? >>>>>> >>>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> In general, it is OK in M3 to associate multiple conditions >>>>>> with the >>>>>> same mutex. But not vice versa. >>>>>> >>>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>>> >>>>>> condition variables/win32 >>>>>> >>>>>> >>>>>> So..one way I think about condition variables >>>>>> is that you want to be woken when someone else >>>>>> leaves the mutex that guards the data that you are dealing with. >>>>>> You want to know when another thread modifies the data. >>>>>> (If you have a reader/writer lock, you only want to be >>>>>> woken when someone exits a write.) >>>>>> >>>>>> >>>>>> Now, if you consider a producer/consumer queue. >>>>>> There are two interesting occurences. >>>>>> Transitions from empty to non-empty >>>>>> and transitions from full to non-full (optionally, >>>>>> if it is fixed size). >>>>>> >>>>>> >>>>>> Consumers wait for empty to non-empty. >>>>>> Consumers signal full to non-full. >>>>>> Producers wait for full to non-full. >>>>>> Producers signal non-empty to empty. >>>>>> >>>>>> >>>>>> So, in this case, one mutex is likely used with with two >>>>>> condition >>>>>> variables. >>>>>> >>>>>> >>>>>> But, what if we take a simplifying deoptimization and assume >>>>>> that a >>>>>> condition >>>>>> variable is only ever associated with one mutex? >>>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>>> condition >>>>>> associated with it? >>>>>> Like, a condition variable I think becomes stateless and >>>>>> everything is >>>>>> about the mutex? >>>>>> >>>>>> >>>>>> What is the downside? >>>>>> >>>>>> >>>>>> Condition variables are allowed to have spurious wakeups. >>>>>> This would "just" increase them. Too much? >>>>>> >>>>>> >>>>>> So, therefore, what would be wrong with the following design? >>>>>> a mutex contains an event >>>>>> and a number of waiters, zero or non-zero >>>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>>> the >>>>>> event >>>>>> >>>>>> >>>>>> To handle Signal vs. Broadcast >>>>>> method 1: >>>>>> the number of waiters might be interlocked >>>>>> the woken would decrement it >>>>>> if it isn't zero, signal the event again >>>>>> >>>>>> >>>>>> method 2: >>>>>> the number of waiters is both an integer and a semaphore >>>>>> and the lock exiter raises the semaphore by the the integer >>>>>> >>>>>> >>>>>> method 3: >>>>>> it is not an auto-reset event and there is a count >>>>>> and when the count goes to 0, reset the event >>>>>> I think in this case you have to maintain a "wait generation" >>>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>>> I think this #3 is what Java might be doing, and is described >>>>>> here: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> "3.3. The Generation Count Solution" >>>>>> >>>>>> >>>>>> also: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> 3.2. The SetEvent Solution >>>>>> Evaluating the SetEvent Solution >>>>>> Incorrectness -- >>>>>> >>>>>> >>>>>> Is that incorrect case really necessarily incorrect? >>>>>> It seems unfair, since first waiter should be first woken, but..? >>>>>> >>>>>> >>>>>> Am I missing something? A lot? >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/html; >>>>>> charset=US-ASCII >>>>>> Content-Transfer-Encoding: quoted-printable >>>>>> >>>>>> >>>>> space; = >>>>>> -webkit-line-break: after-white-space; ">
>>>>> apple-content-edited=3D"true">>>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>>> family: = >>>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>>> normal; = >>>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>>> normal; = >>>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>>> none; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text- >>>>>> size-adjust: = >>>>>> auto; -webkit-text-stroke-width: 0; ">
>>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>>> after-white-space; ">>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">
>>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>>> -webkit-line-break: after-white-space; ">>>>>> style-span" = >>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">In = >>>>>> general, it is OK in M3 to associate multiple conditions with >>>>>> the same = >>>>>> mutex.  But not vice versa.
>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">>>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>>> medium;">
>>>>> span>>>>>>
On 8 >>>>>> Oct 2009, = >>>>>> at 09:32, Jay K wrote:

>>>>> class=3D"Apple-interchange-newline">
>>>>> type=3D"cite">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>>> color: = >>>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>>> style: = >>>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>>> spacing: = >>>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>>> indent: = >>>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>>> spacing: = >>>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>>> -webkit-border-vertical-spacing: 0px; = >>>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>>> adjust: = >>>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>>> class=3D"hmmessage" = >>>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>>> variables/win32
 

So..one way I think about >>>>>> condition = >>>>>> variables
is that you want to be woken when someone >>>>>> else
leaves = >>>>>> the mutex that guards the data that you are dealing >>>>>> with.
You want to = >>>>>> know when another thread modifies the data.
(If you have a = >>>>>> reader/writer lock, you only want to be
woken when someone >>>>>> exits a = >>>>>> write.)
 

Now, if you consider a producer/ >>>>>> consumer = >>>>>> queue.
There are two interesting occurences.
Transitions >>>>>> from = >>>>>> empty to non-empty
and transitions from full to non-full = >>>>>> (optionally,
if it is fixed >>>>>> size).
 

Consumers wait = >>>>>> for empty to non-empty.
Consumers signal full to = >>>>>> non-full.
Producers wait for full to non-full.
Producers >>>>>> signal = >>>>>> non-empty to empty.
 

So, in this case, one >>>>>> mutex is = >>>>>> likely used with with two condition = >>>>>> variables.
 

But, what if we take a simplifying = >>>>>> deoptimization and assume that a condition
variable is only >>>>>> ever = >>>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>>> up anyone = >>>>>> waiting on any condition associated with it?
Like, a >>>>>> condition = >>>>>> variable I think becomes stateless and everything is
about >>>>>> the = >>>>>> mutex?
 
 
What is the = >>>>>> downside?
 

Condition variables are allowed to >>>>>> have = >>>>>> spurious wakeups.
This would "just" increase them. Too = >>>>>> much?
 

So, therefore, what would be wrong with >>>>>> the = >>>>>> following design?
 a mutex contains an event>>>>> class=3D"Apple-converted-space"> 
 and a >>>>>> number of = >>>>>> waiters, zero or non-zero>>>>> class=3D"Apple-converted-space"> 
 if a >>>>>> mutex is = >>>>>> exiting with a non-zero number of waiters, signal the = >>>>>> event
 

To handle Signal vs. Broadcast
method = >>>>>> 1:
 the number of waiters might be >>>>>> interlocked
 the = >>>>>> woken would decrement it
 if it isn't zero, signal the >>>>>> event = >>>>>> again
 

method 2:
 the number of waiters >>>>>> is both = >>>>>> an integer and a semaphore
 and the lock exiter raises >>>>>> the = >>>>>> semaphore by the the integer

 
method >>>>>> 3:
 it is = >>>>>> not an auto-reset event and there is a count
  and when >>>>>> the = >>>>>> count goes to 0, reset the event
 I think in this case >>>>>> you have = >>>>>> to maintain a "wait generation">>>>> class=3D"Apple-converted-space"> 
 so that >>>>>> new = >>>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>>> think = >>>>>> this #3 is what Java might be doing, and is described >>>>>> here:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>>> Generation Count = >>>>>> Solution"

 
also:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>>> >>>>> class=3D"Apple-converted-space"> >>>>> span>
 

Is that = >>>>>> incorrect case really necessarily incorrect?
It seems >>>>>> unfair, since = >>>>>> first waiter should be first woken, but..?

 
Am >>>>>> I missing = >>>>>> something? A lot?
 

 - = >>>>>> Jay

= >>>>>> >>>>>> --Apple-Mail-96--321618545-- >>>>>> >>>>>> >>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 07:57:26 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 07:57:26 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> I finally did some quick runs with some runtime arguments. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 runs as expected, but no threads debug output. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 ^C hangs and shows this output: 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: Stopping from act=0x7eb46d00 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 ... bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > log2.ko 2>&1 ^C does not give us any more hints. If you 'd like anything else, I can try again this evening. Hope this helps, 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 Oct 21 08:49:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 06:49:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? - Jay > Date: Wed, 21 Oct 2009 07:57:26 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > I finally did some quick runs with some runtime arguments. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 > > runs as expected, but no threads debug output. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 > ^C > > hangs and shows this output: > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: Stopping from act=0x7eb46d00 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > ... > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > > log2.ko 2>&1 > ^C > > does not give us any more hints. > > If you 'd like anything else, I can try again this evening. > > Hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 09:21:57 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 09:21:57 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Quoting Jay K : > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 21 11:06:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 09:06:40 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with over 200 runs (using @M3no-trestle-await-delete). ..Jay > Date: Wed, 21 Oct 2009 09:21:57 +0200 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Jay K : > > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 12:21:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 10:21:30 +0000 Subject: [M3devel] Juno/Win32 heap corruption Message-ID: I thought this was gone, but now I'm still seeing occasional heap corruption in Juno on Win32. It has the same signature of accessing 001ffffc. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Wed Oct 21 13:42:52 2009 From: michael.anderson at elego.de (Michael Anderson) Date: Wed, 21 Oct 2009 13:42:52 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091020193512.GA31133@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> Message-ID: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Hi, Here's an overview of the cm3 repo disk usage on birch: 1385736 /usr/cvs/cm3 32 /usr/cvs/cm3/Attic 2788 /usr/cvs/cm3/caltech-parser 191852 /usr/cvs/cm3/doc 780 /usr/cvs/cm3/examples 4252 /usr/cvs/cm3/m3-comm 1664 /usr/cvs/cm3/m3-db 5340 /usr/cvs/cm3/m3-demo 856 /usr/cvs/cm3/m3-games 1624 /usr/cvs/cm3/m3-lectern 46620 /usr/cvs/cm3/m3-libs 4460 /usr/cvs/cm3/m3-libs/arithmetic 68 /usr/cvs/cm3/m3-libs/binIO 136 /usr/cvs/cm3/m3-libs/bitvector 48 /usr/cvs/cm3/m3-libs/commandrw 56 /usr/cvs/cm3/m3-libs/debug 52 /usr/cvs/cm3/m3-libs/deepcopy 240 /usr/cvs/cm3/m3-libs/digraph 32 /usr/cvs/cm3/m3-libs/dosunixrw 456 /usr/cvs/cm3/m3-libs/dps 44 /usr/cvs/cm3/m3-libs/embutils 256 /usr/cvs/cm3/m3-libs/fftw 204 /usr/cvs/cm3/m3-libs/lapack 48 /usr/cvs/cm3/m3-libs/libbuf 4764 /usr/cvs/cm3/m3-libs/libm3 100 /usr/cvs/cm3/m3-libs/libsio 64 /usr/cvs/cm3/m3-libs/listfuncs 26568 /usr/cvs/cm3/m3-libs/m3core 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced 1980 /usr/cvs/cm3/m3-libs/m3gc-simple 276 /usr/cvs/cm3/m3-libs/m3tk-misc 56 /usr/cvs/cm3/m3-libs/parseparams 208 /usr/cvs/cm3/m3-libs/patternmatching 672 /usr/cvs/cm3/m3-libs/plplot 160 /usr/cvs/cm3/m3-libs/realgeometry 80 /usr/cvs/cm3/m3-libs/set 260 /usr/cvs/cm3/m3-libs/sgml 156 /usr/cvs/cm3/m3-libs/slisp 252 /usr/cvs/cm3/m3-libs/sortedtableextras 728 /usr/cvs/cm3/m3-libs/synthesizer 524 /usr/cvs/cm3/m3-libs/sysutils 52 /usr/cvs/cm3/m3-libs/table-list 152 /usr/cvs/cm3/m3-libs/tcl 48 /usr/cvs/cm3/m3-libs/tempfiles 76 /usr/cvs/cm3/m3-libs/unittest 28 /usr/cvs/cm3/m3-libs/unittest-numeric 1404 /usr/cvs/cm3/m3-libs/wellfett 1680 /usr/cvs/cm3/m3-mail 5652 /usr/cvs/cm3/m3-obliq 1068 /usr/cvs/cm3/m3-pkgtools 1079736 /usr/cvs/cm3/m3-sys 1952 /usr/cvs/cm3/m3-sys/cm3 18876 /usr/cvs/cm3/m3-sys/cm3ide 1756 /usr/cvs/cm3/m3-sys/cminstall 132 /usr/cvs/cm3/m3-sys/dll2lib 68 /usr/cvs/cm3/m3-sys/fix_nl 44 /usr/cvs/cm3/m3-sys/libdump 320 /usr/cvs/cm3/m3-sys/m3back 781656 /usr/cvs/cm3/m3-sys/m3cc 32 /usr/cvs/cm3/m3-sys/m3cgcat 44 /usr/cvs/cm3/m3-sys/m3cggen 4036 /usr/cvs/cm3/m3-sys/m3front 256428 /usr/cvs/cm3/m3-sys/m3gdb 264 /usr/cvs/cm3/m3-sys/m3linker 220 /usr/cvs/cm3/m3-sys/m3loader 1604 /usr/cvs/cm3/m3-sys/m3middle 260 /usr/cvs/cm3/m3-sys/m3objfile 632 /usr/cvs/cm3/m3-sys/m3quake 88 /usr/cvs/cm3/m3-sys/m3scanner 40 /usr/cvs/cm3/m3-sys/m3staloneback 10732 /usr/cvs/cm3/m3-sys/m3tests 344 /usr/cvs/cm3/m3-sys/m3tools 60 /usr/cvs/cm3/m3-sys/mklib 92 /usr/cvs/cm3/m3-sys/scripts 44 /usr/cvs/cm3/m3-sys/windowsResources 11012 /usr/cvs/cm3/m3-tools 20396 /usr/cvs/cm3/m3-ui 544 /usr/cvs/cm3/m3-win 972 /usr/cvs/cm3/m3-www 4008 /usr/cvs/cm3/scripts 16 /usr/cvs/cm3/style 88 /usr/cvs/cm3/sup 3268 /usr/cvs/cm3/tools 1424 /usr/cvs/cm3/www -Mike Quoting hendrik at topoi.pooq.com: > I just downloaded the entire CVS using cvsup and the > control file with the non-comment lines > > *default host=modula3.elegosoft.com > > *default base=/farhome/hendrik/cm3/CVSUP/cvs > *default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > *default compress > *default preserve > > and it ended up using a big pile of disk space: > > #cvsroot > hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > 1390120 cvs > hendrik at lovesong:~/cm3/CVSUP$ > > > Is it likely that I've got everything that the m3 > developers might want to have in a distributed versioning > system? If so, I'll start experimenting with conversions. > > -- hendrik > > -- 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 jay.krell at cornell.edu Wed Oct 21 13:53:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 11:53:22 +0000 Subject: [M3devel] @M3CheckShape? Message-ID: Debugging Juno on Win32..I found that some apps fail if you specify @M3CheckShape. Verified with Juno and mentor on I386_DARWIN. The error is that VBT.FatalError is not in the RAISES list. But that only occurs if the exception is raised, right? Is the check wrong or other code wrong? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:36:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:36:55 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > Quoting Jay K : > >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:38:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:38:09 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Precisely. The problem is that the signal mechanism to stop thread for GC is not working. This is a bogosity of the OpenBSD user-level threads implementation. Either we configure OpenBSD to use ThreadPosix instead of ThreadPThread or we switch to rthreads. On 21 Oct 2009, at 05:06, Jay K wrote: > Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with > over 200 runs (using @M3no-trestle-await-delete). > > ..Jay > > > Date: Wed, 21 Oct 2009 09:21:57 +0200 > > From: wagner at elegosoft.com > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Status of threads for RC4? > > > > Quoting Jay K : > > > > > Is it reasonable maybe to rewrite this test in C and see if it > hangs? > > > > > > ie. see if maybe it is an OpenBSD bug? > > > > It doesn't hang with garbage collection turned off, so there must be > > some unhealthy interaction between that and the thread > implementation. > > I don't think you will be able to narrow it down with a C test. > > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:46:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:46:27 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> The gross fix is to have threads in blocking pthread calls to post their blocked status on entry. The GC stop-world code can simply notice they are blocked and not try to signal them, but just set their status to stopping. When the blocked thread returns from the blocking call it can notice the stopping state and transition to stopped, waiting on the stop-world semaphore. This appears to be what the Kaffe VM folks do. The unfortunate thing is that this is *totally unnecessary* on every other platform except OpenBSD, as far as I know. We do not want to add cruft to the thread primitives just to support a broken user-level threads system. Better just to revert OpenBSD to our own user-level ThreadPosix implementation until OpenBSD wakes up to the real world of SMP and multicore. On 21 Oct 2009, at 09:38, Tony Hosking wrote: > Precisely. The problem is that the signal mechanism to stop thread > for GC is not working. This is a bogosity of the OpenBSD user-level > threads implementation. Either we configure OpenBSD to use > ThreadPosix instead of ThreadPThread or we switch to rthreads. > > On 21 Oct 2009, at 05:06, Jay K wrote: > >> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >> over 200 runs (using @M3no-trestle-await-delete). >> >> ..Jay >> >> > Date: Wed, 21 Oct 2009 09:21:57 +0200 >> > From: wagner at elegosoft.com >> > To: jay.krell at cornell.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] Status of threads for RC4? >> > >> > Quoting Jay K : >> > >> > > Is it reasonable maybe to rewrite this test in C and see if it >> hangs? >> > > >> > > ie. see if maybe it is an OpenBSD bug? >> > >> > It doesn't hang with garbage collection turned off, so there must >> be >> > some unhealthy interaction between that and the thread >> implementation. >> > I don't think you will be able to narrow it down with a C test. >> > >> > 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 >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:51:16 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:51:16 -0400 Subject: [M3devel] Juno/Win32 heap corruption In-Reply-To: References: Message-ID: <72EAD05B-B812-4A7E-B07E-262F30AC9A52@cs.purdue.edu> Can you not set a HW watchpoint to check for the location being overwritten with the bogus pointer? Also, better to run with @M3paranoidgc so you catch it in the heap sanity checks (which check to make sure that pointers really look like pointers) rather than some arbitrary place. 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 21 Oct 2009, at 06:21, Jay K wrote: > I thought this was gone, but now I'm still seeing occasional heap > corruption in Juno on Win32. > It has the same signature of accessing 001ffffc. > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 16:00:42 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:00:42 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> Message-ID: <20091021160042.abtrrlb37okco48s@mail.elegosoft.com> Quoting Tony Hosking : > The gross fix is to have threads in blocking pthread calls to post > their blocked status on entry. The GC stop-world code can simply > notice they are blocked and not try to signal them, but just set their > status to stopping. When the blocked thread returns from the blocking > call it can notice the stopping state and transition to stopped, > waiting on the stop-world semaphore. This appears to be what the > Kaffe VM folks do. The unfortunate thing is that this is *totally > unnecessary* on every other platform except OpenBSD, as far as I know. > We do not want to add cruft to the thread primitives just to support > a broken user-level threads system. Better just to revert OpenBSD to > our own user-level ThreadPosix implementation until OpenBSD wakes up > to the real world of SMP and multicore. Yes. We should not introduce unnecessary workarounds for broken platform libraries. If user-level threads work, that should be fine. Olaf > On 21 Oct 2009, at 09:38, Tony Hosking wrote: > >> Precisely. The problem is that the signal mechanism to stop thread >> for GC is not working. This is a bogosity of the OpenBSD >> user-level threads implementation. Either we configure OpenBSD to >> use ThreadPosix instead of ThreadPThread or we switch to rthreads. >> >> On 21 Oct 2009, at 05:06, Jay K wrote: >> >>> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >>> over 200 runs (using @M3no-trestle-await-delete). >>> >>> ..Jay >>> >>>> Date: Wed, 21 Oct 2009 09:21:57 +0200 >>>> From: wagner at elegosoft.com >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> >>>> Quoting Jay K : >>>> >>>> > Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> > >>>> > ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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 wagner at elegosoft.com Wed Oct 21 16:04:54 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:04:54 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Quoting Tony Hosking : > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > >> Quoting Jay K : >> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 wagner at elegosoft.com Wed Oct 21 16:31:01 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:31:01 +0200 Subject: [M3devel] new trac tickets for threads etc. Message-ID: <20091021163101.y8rkzklgkgg0040w@mail.elegosoft.com> FYI, I've created the following tickets to document the current problems, work-arounds and resolutions: https://projects.elego.de/cm3/ticket/1073 https://projects.elego.de/cm3/ticket/1074 https://projects.elego.de/cm3/ticket/1075 Please feel free to add and change the information. All tickets are targeted at the -- again overdue -- RC4. (Regardsless what date I specify, it's never late enough ;-) 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 Oct 21 18:06:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 12:06:12 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Message-ID: <5E9865BF-FB72-4157-B138-1C4F549C1AC9@cs.purdue.edu> This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 hendrik at topoi.pooq.com Wed Oct 21 18:47:50 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Wed, 21 Oct 2009 12:47:50 -0400 Subject: [M3devel] cvs size In-Reply-To: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Message-ID: <20091021164750.GA1700@topoi.pooq.com> On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: > Hi, > > Here's an overview of the cm3 repo disk usage on birch: Thanks. It looks as if things went OK. Ths only difference I noticed is that I ended up with a cvs/sup directory as well as a cvs/cm3/sup directory. My guess is that it's something that cvsup uses to keep track of things so I rerun cvsup to get updates efficiently. But why do I get two of them? OR alternatively, why is the one my cvsup generates in a different place from the one you have in your repository. Do I even need a copy of yours? Might it confuse cvsup? -- hendrik > > 1385736 /usr/cvs/cm3 > > 32 /usr/cvs/cm3/Attic > 2788 /usr/cvs/cm3/caltech-parser > 191852 /usr/cvs/cm3/doc > 780 /usr/cvs/cm3/examples > 4252 /usr/cvs/cm3/m3-comm > 1664 /usr/cvs/cm3/m3-db > 5340 /usr/cvs/cm3/m3-demo > 856 /usr/cvs/cm3/m3-games > 1624 /usr/cvs/cm3/m3-lectern > 46620 /usr/cvs/cm3/m3-libs > > 4460 /usr/cvs/cm3/m3-libs/arithmetic > 68 /usr/cvs/cm3/m3-libs/binIO > 136 /usr/cvs/cm3/m3-libs/bitvector > 48 /usr/cvs/cm3/m3-libs/commandrw > 56 /usr/cvs/cm3/m3-libs/debug > 52 /usr/cvs/cm3/m3-libs/deepcopy > 240 /usr/cvs/cm3/m3-libs/digraph > 32 /usr/cvs/cm3/m3-libs/dosunixrw > 456 /usr/cvs/cm3/m3-libs/dps > 44 /usr/cvs/cm3/m3-libs/embutils > 256 /usr/cvs/cm3/m3-libs/fftw > 204 /usr/cvs/cm3/m3-libs/lapack > 48 /usr/cvs/cm3/m3-libs/libbuf > 4764 /usr/cvs/cm3/m3-libs/libm3 > 100 /usr/cvs/cm3/m3-libs/libsio > 64 /usr/cvs/cm3/m3-libs/listfuncs > 26568 /usr/cvs/cm3/m3-libs/m3core > 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced > 1980 /usr/cvs/cm3/m3-libs/m3gc-simple > 276 /usr/cvs/cm3/m3-libs/m3tk-misc > 56 /usr/cvs/cm3/m3-libs/parseparams > 208 /usr/cvs/cm3/m3-libs/patternmatching > 672 /usr/cvs/cm3/m3-libs/plplot > 160 /usr/cvs/cm3/m3-libs/realgeometry > 80 /usr/cvs/cm3/m3-libs/set > 260 /usr/cvs/cm3/m3-libs/sgml > 156 /usr/cvs/cm3/m3-libs/slisp > 252 /usr/cvs/cm3/m3-libs/sortedtableextras > 728 /usr/cvs/cm3/m3-libs/synthesizer > 524 /usr/cvs/cm3/m3-libs/sysutils > 52 /usr/cvs/cm3/m3-libs/table-list > 152 /usr/cvs/cm3/m3-libs/tcl > 48 /usr/cvs/cm3/m3-libs/tempfiles > 76 /usr/cvs/cm3/m3-libs/unittest > 28 /usr/cvs/cm3/m3-libs/unittest-numeric > 1404 /usr/cvs/cm3/m3-libs/wellfett > > 1680 /usr/cvs/cm3/m3-mail > 5652 /usr/cvs/cm3/m3-obliq > 1068 /usr/cvs/cm3/m3-pkgtools > 1079736 /usr/cvs/cm3/m3-sys > > 1952 /usr/cvs/cm3/m3-sys/cm3 > 18876 /usr/cvs/cm3/m3-sys/cm3ide > 1756 /usr/cvs/cm3/m3-sys/cminstall > 132 /usr/cvs/cm3/m3-sys/dll2lib > 68 /usr/cvs/cm3/m3-sys/fix_nl > 44 /usr/cvs/cm3/m3-sys/libdump > 320 /usr/cvs/cm3/m3-sys/m3back > 781656 /usr/cvs/cm3/m3-sys/m3cc > 32 /usr/cvs/cm3/m3-sys/m3cgcat > 44 /usr/cvs/cm3/m3-sys/m3cggen > 4036 /usr/cvs/cm3/m3-sys/m3front > 256428 /usr/cvs/cm3/m3-sys/m3gdb > 264 /usr/cvs/cm3/m3-sys/m3linker > 220 /usr/cvs/cm3/m3-sys/m3loader > 1604 /usr/cvs/cm3/m3-sys/m3middle > 260 /usr/cvs/cm3/m3-sys/m3objfile > 632 /usr/cvs/cm3/m3-sys/m3quake > 88 /usr/cvs/cm3/m3-sys/m3scanner > 40 /usr/cvs/cm3/m3-sys/m3staloneback > 10732 /usr/cvs/cm3/m3-sys/m3tests > 344 /usr/cvs/cm3/m3-sys/m3tools > 60 /usr/cvs/cm3/m3-sys/mklib > 92 /usr/cvs/cm3/m3-sys/scripts > 44 /usr/cvs/cm3/m3-sys/windowsResources > > 11012 /usr/cvs/cm3/m3-tools > 20396 /usr/cvs/cm3/m3-ui > 544 /usr/cvs/cm3/m3-win > 972 /usr/cvs/cm3/m3-www > 4008 /usr/cvs/cm3/scripts > 16 /usr/cvs/cm3/style > 88 /usr/cvs/cm3/sup > 3268 /usr/cvs/cm3/tools > 1424 /usr/cvs/cm3/www > > -Mike > > Quoting hendrik at topoi.pooq.com: > > >I just downloaded the entire CVS using cvsup and the > >control file with the non-comment lines > > > >*default host=modula3.elegosoft.com > > > >*default base=/farhome/hendrik/cm3/CVSUP/cvs > >*default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > > >*default compress > >*default preserve > > > >and it ended up using a big pile of disk space: > > > >#cvsroot > >hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > >1390120 cvs > >hendrik at lovesong:~/cm3/CVSUP$ > > > > > >Is it likely that I've got everything that the m3 > >developers might want to have in a distributed versioning > >system? If so, I'll start experimenting with conversions. > > > >-- hendrik > > > > > > > > -- > 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 wagner at elegosoft.com Wed Oct 21 20:05:37 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 20:05:37 +0200 Subject: [M3devel] Fwd: Re: Status of threads for RC4? Message-ID: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 > ----- End forwarded message ----- -- 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 -------------- This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 wagner at elegosoft.com Wed Oct 21 21:12:36 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 21:12:36 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091021164750.GA1700@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> <20091021164750.GA1700@topoi.pooq.com> Message-ID: <20091021211236.0m6f81bc0kocggo4@mail.elegosoft.com> Quoting hendrik at topoi.pooq.com: > On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: >> Hi, >> >> Here's an overview of the cm3 repo disk usage on birch: > > Thanks. It looks as if things went OK. > > Ths only difference I noticed is that I ended up with a cvs/sup > directory as well as a cvs/cm3/sup directory. > > My guess is that it's something that cvsup uses to keep track of things > so I rerun cvsup to get updates efficiently. But why do I get two of > them? OR alternatively, why is the one my cvsup generates in a > different place from the one you have in your repository. > > Do I even need a copy of yours? Might it confuse cvsup? The one on the server is just a relict, I guess. You only need the local one. CVSup keeps a checksum list there. You can delete it, but it will speed up things if it exists. 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 Oct 21 22:02:26 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Wed, 21 Oct 2009 13:02:26 -0700 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 >> > > > > ----- End forwarded message ----- > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 Wed Oct 21 23:02:41 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:02:41 +0000 Subject: [M3devel] Juno/Thread/Win32 notes Message-ID: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 23:07:09 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:07:09 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 02:12:55 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 00:12:55 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: ps: notice: >> resumed system calls will return an error value of EINTR We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 03:05:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 01:05:30 +0000 Subject: [M3devel] interesting book on concurrency Message-ID: search the web for: "the little book of semaphores" by Allen Downey. http://www.greenteapress.com/semaphores/ - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 03:32:26 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:32:26 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: On 21 Oct 2009, at 20:12, Jay K wrote: > ps: notice: > > >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. > We probably need to handle that in a bunch of places. > But some things like read/write will return just having done a > partial read/write? Huh? Should already be done? > Maybe something more cooperative would be easier? > Or even user threads?? > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. > > - Jay > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 21:07:09 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Not sure how the formatting will come through..but yes. > Hopefully on all processor architectures. > > > "np" means "not portable", ok > > > http://www.openbsd.org/cgi-bin/man.cgi > > appropos suspend > > http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 > > PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > PTHREAD_SUSPEND_NP(3) > > NAME > pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, > pthread_resume_all_np - suspend and resume thread(s) > > SYNOPSIS > #include > #include > > int > pthread_suspend_np(pthread_t thread); > > void > pthread_suspend_all_np(void); > > int > pthread_resume_np(pthread_t thread); > > void > pthread_resume_all_np(void); > > DESCRIPTION > The pthread_suspend_np() function interrupts the given thread > and places > it in a suspended state. > > The pthread_suspend_all_np() function interrupts all threads > except the > current thread and places them in a suspended state. > > The pthread_resume_np() function resumes a thread suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_all_np() function resumes all threads > suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_np() and pthread_resume_all_np() functions > have no ef- > fect on threads that have not been suspended. > > Suspending and resuming a thread has an effect similar to that > of receiv- > ing a signal, namely that resumed system calls will return an > error value > of EINTR. > > RETURN VALUES > The pthread_suspend_np() and pthread_resume_np() functions fail > if: > > [ESRCH] No thread could be found corresponding to that > specified by > the given thread ID. > > The pthread_suspend_np() function fails if: > > [EDEADLK] Attempt to suspend the current thread. > > SEE ALSO > pthread_cancel(3), pthreads(3) > > STANDARDS > The pthread_suspend_np(), pthread_suspend_all_np(), > pthread_resume_np() > and pthread_resume_all_np() functions are non-portable and may > not be > supported with the above semantics on other POSIX systems. > > OpenBSD 4.5 May 31, > 2007 1 > NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > > - Jay > > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 13:02:26 -0700 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > OpenBSD has good documentation.. (man pages) > > - Jay (phone) > > On Oct 21, 2009, at 11:05 AM, Olaf Wagner > wrote: > > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread > implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > > > > > ----- End forwarded message ----- > > > -- > 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 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 hosking at cs.purdue.edu Thu Oct 22 03:56:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:56:21 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> On 21 Oct 2009, at 17:02, Jay K wrote: > ThreadWin32.m3 almost exactly matches Birrel's design. > The order of two unlocks is reversed. It probably doesn't matter. > He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. > We have queueing on our locks which appears unncessary, but is maybe > with in mind an optimization mentioned but now shown by Birrel -- > that of Signal with a lock held transfering a thread right > to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. > Birrel also has one mutex per condition variable but that > seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/ broadcast thread. > I believe there is much room for performance improvement > here, but if it is correct, it is ok for this release. > As well, I believe lock/conditionvariables can be made to work > in threads not created by the Modula-3 runtime, at least with > a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). > (owner = GetCurrentThreadId instead of T). Sure. > I put in a bunch of RTIO in Juno. > Whenever it hangs, the Signal call doesn't actually occur. > We have to try to figure out why. > It is something in the Misc/misc calls. What are the Misc/misc calls? > So ThreadWin32.m3 is fairly well vindicated (except > maybe via some roundabout fashion). > > > The heap corruption is now fairly rare in Juno. > I don't know if it is consistent or not. > The contents are, not sure of the address. > I'll debug more. > > > My next idea..since I think the corruption involves > copying a pixmap over other data, is to alter all > pixmaps to be composed of specific data, see if that > occurs in the corruption, to try to confirm this > part of my theory. > > > If that holds, then the memcpys done by gc could > check for the pattern (actually they could check > anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. > As well, with ThreadWin32.m3 having gotten some fixes, > getting various timestamps of the source tree might be > a good idea. > > > With ThreadWin32.m3 fairly well vindicated, we might > declare the quality is high enough asis. ? > But I'd like to keep investigating. > (Anyone else can?) > > > The doubt imho is now more cast upon the Win32 Trestle code. > We might even try Cygwin configured to use Win32 threads > and X Windows and see if that has the same bug. > > > Later.. > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:21:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:21:28 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:24:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:24:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: > Huh? Should already be done? Could be. > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. > These are available for OpenBSD already. Not sure why you synthesized. Not that I see. They probably don't scramble in setjmp/longjmp though? (else mine wouldn't work) but making setjmp work is almost the same work as building get/set/make/swapcontext on top of it, gotta poke around in the jmpbuf either way. - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Wed, 21 Oct 2009 21:32:26 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? On 21 Oct 2009, at 20:12, Jay K wrote: ps: notice: >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 07:26:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:26:03 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: > It seems like we should have Mutex and RecursiveMutex, have either work with Condition Understood that Wait would have to assert that RecursiveMutex is only locked to depth 1 or somesuch. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 22 Oct 2009 05:21:28 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 20:19:30 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 22 Oct 2009 14:19:30 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <5532FF75-842A-4341-9531-A321B0F56E17@cs.purdue.edu> On 22 Oct 2009, at 01:21, Jay K wrote: > > The only reason to have it in the CV is to achieve the > optimization, > > so you know to which mutex queue we should transfer the signalled/ > broadcast thread. > > > Of course. I should have realized that. > Um..the data is available anyway though, isn't it? > The thread had to call wait(mutex, condition) in order for > signal(condition) to unlink him from the condition's waiters, the > waiting thread can store the mutex in itself (he can only be waiting > on one condition variable at a time) and the signaling thread can > grab that. > I think. You may need to know which mutex to move the thread to upon alert. > In either case, I'm not too inclined to touch it for this release > until we are sure there is a bug, and that looks unlikely at this > point. We could try putting back your BroadcastHeap change? I don't think that is in any way broken. > It also seems a little gross that the heap lock is a special case > recursive mutex. > It seems like we should have Mutex and RecursiveMutex, have either > work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just > be wrappers around that. The heap lock cannot be an object allocated in the heap. > More generally we should probably try to embelish Thread.i3 with > more primitives I think. At least "interlocked" and "once", if not > "event" and "semaphore". > "once" could definitely see a fair amount of use. Yuck. Thread.i3 is a standard interface and should not change. Modula-3 has strong ideas about what thread primitives should be. > The rest maybe not, maybe they are too primitive and hard to get > good use out of, hard to define portably/efficiently. > > > Or maybe LockHeap/UnlockHeap recursive support could/should be > removed and just stick with Mutex and Condition and nothing else? Again. These are needed inside GC when one cannot touch heap objects. > > > Well, reader/writer locks are nice. ... -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:11:36 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:11:36 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:16:50 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:16:50 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:07:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:07:02 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:08:00 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:08:00 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: I don't think tweaking the heap parameters will help much. On 23 Oct 2009, at 09:11, Jay K wrote: > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:43:59 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext Message-ID: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 03:59:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 01:59:49 +0000 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext In-Reply-To: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> References: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> Message-ID: - sounds very good - no active target defaults to user threads The "closest" is FreeBSD 4.x. I mean, you know, that is the only one anyone here has expressed a recent desire to use, and used it and it was made to work. He can locally edit m3makefile. - I don't know of any significant platform without pthreads except NT and hypothetical DJGPP (Linux 2.4 mentioned below) - The following I know don't have make/get/set/swapcontext: any version of Cygwin, and I suspect not worth worrying about any version of NT, and I suspect not worth worrying about I don't think fibers are viable but maybe. Fibers don't interact propertly with any locking construct except Interlocked. e.g. critical sections nor any kernel object "work". Win7 has "user mode scheduling" that addresses problems with fibers but I think only on 64bit? any version of OpenBSD Darwin <=10.4; I synthesized them for PowerPC/10.4; you might try that (I found the PowerPC compat on x86 to be not very good though, maybe that was debugging only). - I think HP-UX manpage has strong warnings about these functions, being very version specific/fragile or something. But HP-UX has pthreads. - old Linux 2.4 still seems to be in somewhat active use, in specialized areas -- my router and a networked hard drive I have; pthreads is there I think, but not NPTL. I wonder if we should have I386_FREEBSD_USERTHREADS I386_LINUX_USERTHREADS SPARC_SOLARIS_USERTHREADS? and give them decent test/Hudson/release coverage? Maybe I386_FREEBSD4_USERTHREADS I386_LINUX24_USERTHREADS To "ghettoize" them via naming only, though they'd actually work and be tested on current systems? That is, you know, make userthreads work a bunch, be more portable, maintainable, great, then what? They still sit unused/unbuilt/untested? How to fix that? At least built/testet? Maybe just with cm3 -D thing, don't release them, just build/test them regularly? > The advantage of this move will be to eliminate a large swath of "cloned" Good! Specific questions about specific platforms ask me? You can see the answer is kind of backwards -- notice how every platform I have introduced I didn't add user threads support for. Question is only then for old/dead/unused/dormant platforms, and most of them DO have pthreads these days. I have a few machines not setup or not powered on -- Irix (32bit and 64bit in one) and AIX (32bit and 64bit in one) and HP-UX/HPPA (32bit and 64bit in one), Linux/IA64 specifically are powered off. VMS/Alpha, VMS/IA64 HP-UX/IA64, Tru64 I haven't gotten up and running yet, but I think they all support pthreads a long time now so no big worry. I also don't have have Linux/PPC64 or Darwin/PPC64 capability yet. (I think after this release Linux/IA64 should be done and will require a small change -- it has "two stacks" to scan.) > but don't have easy access to existing ABIs for other targets Please try the ssh commands I sent? That'll give you OpenBSD. FreeBSD maybe but I think it is off. I can provide more but for purposes of this line of questioning doesn't seem criticla. Birch gives you Linux/AMD64 and, in (slow/VM) a fashion NT and maybe Cygwin. - Jay From: hosking at cs.purdue.edu To: m3devel at elegosoft.com Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:19:07 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:19:07 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:39:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:39:49 +0000 Subject: [M3devel] mentor/win32 Message-ID: Well mentor at least crashes consistently, in head. 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000 fld dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ 131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Oct 24 16:53:28 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 24 Oct 2009 14:53:28 +0000 (GMT) Subject: [M3devel] mentor/win32 In-Reply-To: Message-ID: <959278.61051.qm@web23603.mail.ird.yahoo.com> Hi: Does it show a runtime error message. can you get one? in which module is nil dereferencing? could you compare what is the difference when the system uses the gcc backend?? Thanks in advance. --- El s?b, 24/10/09, Jay K wrote: De: Jay K Asunto: [M3devel] mentor/win32 Para: "m3devel" Fecha: s?bado, 24 octubre, 2009 9:39 Well mentor at least crashes consistently, in head. ? 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) ? debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000????????? fld???? dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ ?131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 24 19:15:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 24 Oct 2009 13:15:36 -0400 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <17380155-97E5-4813-BEAC-0D5A6C7B2602@cs.purdue.edu> This is only on Windows. On 24 Oct 2009, at 10:53, Daniel Alejandro Benavides D. wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 03:06:45 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 24 Oct 2009 19:06:45 -0700 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <6DBB0337-EF2E-403B-918E-2A5D4490F904@hotmail.com> This is during startup. I figured I'd see if other GUI apps crash like Juno but more consistently. - Jay (phone) On Oct 24, 2009, at 7:53 AM, "Daniel Alejandro Benavides D." wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 11:49:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 10:49:39 +0000 Subject: [M3devel] map SIGBUS to SegV? Message-ID: I just noticed..it appears that some ports historically catch SIGBUS and call SegV, and some don't install a handler for it. e.g. it looks like the Darwin platforms do this. In my porting of the signal handling code to C, I foisted this behavior on all platforms. Reasonable? Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. I think it is probably ok asis, or maybe even an improvement. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 12:55:42 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 11:55:42 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 25 18:51:45 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Oct 2009 13:51:45 -0400 Subject: [M3devel] map SIGBUS to SegV? In-Reply-To: References: Message-ID: <7052E471-5164-49A2-9067-AE73BD777481@cs.purdue.edu> Good question. I'm not sure what the different OSs do. Does anyone else have an opinion? On 25 Oct 2009, at 06:49, Jay K wrote: > I just noticed..it appears that some ports historically catch SIGBUS > and call SegV, and some don't install a handler for it. > e.g. it looks like the Darwin platforms do this. > In my porting of the signal handling code to C, I foisted this > behavior on all platforms. > Reasonable? > Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. > I think it is probably ok asis, or maybe even an improvement. > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:43:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:43:29 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:45:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:45:57 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 04:26:46 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 03:26:46 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: full disclosure: This version has the bug where non-standalone NT apps don't do set operations correctly. (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) I'll retest with standalone. If that survives hundreds of iterations I can go forward gradually and find when things broke. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Mon, 26 Oct 2009 02:45:57 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 08:02:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 07:02:10 +0000 Subject: [M3devel] gdb help -- looping until crash? Message-ID: On Windows I use: type \cm3\bin\j.cmd @echo off setlocal set a=1 :loop echo %a% \bin\x86\cdb -g -G Juno.exe @M3no-trestle-await-delete @M3paranoidgc set /a a=a + 1 goto :loop this runs Juno in a loop, in a debugger, until it hits an access violation. It prints how many times it has run before each run. -g means go right away at the start of the process -G means go past the end of the process set /a is for "arithmetic" (expression evaluation) What is the equivalent with gdb/sh? I've search the web some but haven't found it yet. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 09:03:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:03:06 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? Message-ID: Can anyone explain this? DblBufferVBT.m3 PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; from: VBT.T; delta := Point.Origin; wait := TRUE) = <* LL.sup < to *> VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); VBT.m3: PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): ScrnPixmap.T RAISES {} = VAR bad: Region.T; BEGIN LOCK v DO from is passed uninitialized to Capture. The code appears the same in head, 5.2.6, 3.6. I do hit the LOCK v in Capture if I run Juno sufficient times on NT. Maybe from should be Child() or ch? I'll try that. - Jay From jay.krell at cornell.edu Mon Oct 26 09:10:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:10:28 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? In-Reply-To: References: Message-ID: sorry I'm an idiot, the wordwrap confused me into seeing "VAR" where it wasn't. Still, to is sometimes NIL. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Mon, 26 Oct 2009 08:03:06 +0000 > Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? > > > Can anyone explain this? > > DblBufferVBT.m3 > > PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; > from: VBT.T; delta := Point.Origin; wait := TRUE) = > <* LL.sup < to *> > VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN > pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); > > VBT.m3: > > PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): > ScrnPixmap.T RAISES {} = > VAR bad: Region.T; > BEGIN > LOCK v DO > > from is passed uninitialized to Capture. > The code appears the same in head, 5.2.6, 3.6. > I do hit the LOCK v in Capture if I run Juno sufficient times on NT. > Maybe from should be Child() or ch? > I'll try that. > > > - Jay From wagner at elegosoft.com Mon Oct 26 10:35:08 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 10:35:08 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> Hi again, I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month, so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so, what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again, is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : > On 21 Oct 2009, at 20:12, Jay K wrote: > >> ps: notice: >> >>>> resumed system calls will return an error value of EINTR > > Not a problem. We already cope with that in ThreadPThread. > >> We probably need to handle that in a bunch of places. >> But some things like read/write will return just having done a >> partial read/write? > > Huh? Should already be done? > >> Maybe something more cooperative would be easier? >> Or even user threads?? >> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >> on some OpenBSD platforms, like ppc/x86. > > These are available for OpenBSD already. Not sure why you synthesized. > >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 21:07:09 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Not sure how the formatting will come through..but yes. >> Hopefully on all processor architectures. >> >> >> "np" means "not portable", ok >> >> >> http://www.openbsd.org/cgi-bin/man.cgi >> >> appropos suspend >> >> http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 >> >> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >> PTHREAD_SUSPEND_NP(3) >> >> NAME >> pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, >> pthread_resume_all_np - suspend and resume thread(s) >> >> SYNOPSIS >> #include >> #include >> >> int >> pthread_suspend_np(pthread_t thread); >> >> void >> pthread_suspend_all_np(void); >> >> int >> pthread_resume_np(pthread_t thread); >> >> void >> pthread_resume_all_np(void); >> >> DESCRIPTION >> The pthread_suspend_np() function interrupts the given thread >> and places >> it in a suspended state. >> >> The pthread_suspend_all_np() function interrupts all threads except the >> current thread and places them in a suspended state. >> >> The pthread_resume_np() function resumes a thread suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_all_np() function resumes all threads suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_np() and pthread_resume_all_np() functions >> have no ef- >> fect on threads that have not been suspended. >> >> Suspending and resuming a thread has an effect similar to that >> of receiv- >> ing a signal, namely that resumed system calls will return an >> error value >> of EINTR. >> >> RETURN VALUES >> The pthread_suspend_np() and pthread_resume_np() functions fail if: >> >> [ESRCH] No thread could be found corresponding to that >> specified by >> the given thread ID. >> >> The pthread_suspend_np() function fails if: >> >> [EDEADLK] Attempt to suspend the current thread. >> >> SEE ALSO >> pthread_cancel(3), pthreads(3) >> >> STANDARDS >> The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() >> and pthread_resume_all_np() functions are non-portable and may not be >> supported with the above semantics on other POSIX systems. >> >> OpenBSD 4.5 May 31, 2007 >> 1 >> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >> >> - Jay >> >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 13:02:26 -0700 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> OpenBSD has good documentation.. (man pages) >> >> - Jay (phone) >> >> On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: >> >> Stefan, >> >> you are our OpenBSD fan, aren't you? Can you answer this? >> >> Olaf >> >> ----- Forwarded message from hosking at cs.purdue.edu ----- >> Date: Wed, 21 Oct 2009 12:06:12 -0400 >> From: Tony Hosking >> Reply-To: Tony Hosking >> Subject: Re: [M3devel] Status of threads for RC4? >> To: Olaf Wagner >> Cc: Jay K , m3devel >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, pthread_resume? >> If so then we could work avoid the signals entirely (as we do on OS >> X). All that is needed is implementation of RTMachine.SuspendThread, >> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> >> >> ----- End forwarded message ----- >> >> >> -- >> 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 >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, >> pthread_resume? If so then we could work avoid the signals entirely >> (as we do on OS X). All that is needed is implementation of >> RTMachine.SuspendThread, RTMachine.ResumeThread and >> RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> -- 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 Mon Oct 26 10:41:18 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:41:18 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog at mail.elegosoft.com> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 WIndows threads are ok. OpenBSD are not currently=2C never have been. Windows problems are probably in Trestle. Have been for many years apparently. =20 - Jay ---------------------------------------- > Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Hi again=2C > > I'm still uncertain regarding the thread status. Hudson hasn't built > anything for about a month=2C so there have been no check-ins to the > release branch. > > (1) Has the OpenBSD problem been fixed or worked around? > If so=2C what are the relevant changes that should me merged from > trunk? > > The ChangeLog shows a lot of commits on head... > > (2) Is there still a problem in Windows threads? > Or are we just chasing a general access violation due to an > unknown reason? > > Again=2C is this ongoing or should some changes be merged for > the release? > > Olaf > > Quoting Tony Hosking : > >> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >> >>> ps: notice: >>> >>>>> resumed system calls will return an error value of EINTR >> >> Not a problem. We already cope with that in ThreadPThread. >> >>> We probably need to handle that in a bunch of places. >>> But some things like read/write will return just having done a >>> partial read/write? >> >> Huh? Should already be done? >> >>> Maybe something more cooperative would be easier? >>> Or even user threads?? >>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>> on some OpenBSD platforms=2C like ppc/x86. >> >> These are available for OpenBSD already. Not sure why you synthesized. >> >>> >>> - Jay >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Not sure how the formatting will come through..but yes. >>> Hopefully on all processor architectures. >>> >>> >>> "np" means "not portable"=2C ok >>> >>> >>> http://www.openbsd.org/cgi-bin/man.cgi >>> >>> appropos suspend >>> >>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>> >>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>> PTHREAD_SUSPEND_NP(3) >>> >>> NAME >>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>> pthread_resume_all_np - suspend and resume thread(s) >>> >>> SYNOPSIS >>> #include=20 >>> #include=20 >>> >>> int >>> pthread_suspend_np(pthread_t thread)=3B >>> >>> void >>> pthread_suspend_all_np(void)=3B >>> >>> int >>> pthread_resume_np(pthread_t thread)=3B >>> >>> void >>> pthread_resume_all_np(void)=3B >>> >>> DESCRIPTION >>> The pthread_suspend_np() function interrupts the given thread >>> and places >>> it in a suspended state. >>> >>> The pthread_suspend_all_np() function interrupts all threads except the >>> current thread and places them in a suspended state. >>> >>> The pthread_resume_np() function resumes a thread suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_all_np() function resumes all threads suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_np() and pthread_resume_all_np() functions >>> have no ef- >>> fect on threads that have not been suspended. >>> >>> Suspending and resuming a thread has an effect similar to that >>> of receiv- >>> ing a signal=2C namely that resumed system calls will return an >>> error value >>> of EINTR. >>> >>> RETURN VALUES >>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>> >>> [ESRCH] No thread could be found corresponding to that >>> specified by >>> the given thread ID. >>> >>> The pthread_suspend_np() function fails if: >>> >>> [EDEADLK] Attempt to suspend the current thread. >>> >>> SEE ALSO >>> pthread_cancel(3)=2C pthreads(3) >>> >>> STANDARDS >>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= np() >>> and pthread_resume_all_np() functions are non-portable and may not be >>> supported with the above semantics on other POSIX systems. >>> >>> OpenBSD 4.5 May 31=2C 2007 >>> 1 >>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>> >>> - Jay >>> >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> OpenBSD has good documentation.. (man pages) >>> >>> - Jay (phone) >>> >>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>> >>> Stefan=2C >>> >>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>> >>> Olaf >>> >>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>> From: Tony Hosking=20 >>> Reply-To: Tony Hosking=20 >>> Subject: Re: [M3devel] Status of threads for RC4? >>> To: Olaf Wagner=20 >>> Cc: Jay K =2C m3devel=20 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>> If so then we could work avoid the signals entirely (as we do on OS >>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> ----- End forwarded message ----- >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C >>> pthread_resume? If so then we could work avoid the signals entirely >>> (as we do on OS X). All that is needed is implementation of >>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>> RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= 5 > http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= n > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= 194 > = From jay.krell at cornell.edu Mon Oct 26 10:46:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:46:06 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Here's a better view of the problem, again in 5.2.6. Notice 00e15888 repeating in both threads' parameters. This seems like a simple "add a lock use somewhere" problem but I have little idea of Trestle's locking protocols, apparently a complicated topic. You know, somehow redisplay/reshape need more serialization, but I don't know exactly what. The call to Capture fails with a dereference of NIL in the LOCK use. The unusual part I think is: 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] That's probably not how Redisplay is normally used? I'll look again at head and see if the behavior resembles 5.2.6. 0:000> .logopen c:\2.log Opened log file 'c:\2.log' 0:000> ~*kv99 . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr Args to Child 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff WARNING: Stack unwind information not available. Following frames may be wrong. 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong. 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba - Jay ________________________________ > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > full disclosure: > This version has the bug where non-standalone NT apps don't do set operations correctly. > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > I'll retest with standalone. > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Mon, 26 Oct 2009 02:45:57 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > 0:000> ~*k > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > 0510fec0 00391ebd kernel32!Sleep+0xf > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > 0520fe30 7e418816 USER32!GetDC+0x6d > 0520fe98 7e4189cd USER32!GetDC+0x14f > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > 0540fee4 00391ebd kernel32!Sleep+0xf > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > 9] > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > 0] > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > 0] > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 0:000> > > > - Jay > > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > (1374.1548): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sun, 25 Oct 2009 11:55:42 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > (a70.158c): Access violation - code c0000005 (first chance) > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0:000> > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sat, 24 Oct 2009 14:19:07 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > quick experiment: > #include > #include > int main() > { > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > return 0; > } > > => > 00350000 > 00360000 > 00370000 > > - Jay > > > ________________________________ > > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Fri, 23 Oct 2009 14:07:02 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > > > ________________________________ > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > - Jay > > > > [snip] > From wagner at elegosoft.com Mon Oct 26 13:49:24 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 13:49:24 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> Quoting Jay K : > WIndows threads are ok. In the release branch, too? > OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? > Windows problems are probably in Trestle. > Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf > =20 > - Jay > > ---------------------------------------- >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >> From: wagner at elegosoft.com >> To: hosking at cs.purdue.edu >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Hi again=2C >> >> I'm still uncertain regarding the thread status. Hudson hasn't built >> anything for about a month=2C so there have been no check-ins to the >> release branch. >> >> (1) Has the OpenBSD problem been fixed or worked around? >> If so=2C what are the relevant changes that should me merged from >> trunk? >> >> The ChangeLog shows a lot of commits on head... >> >> (2) Is there still a problem in Windows threads? >> Or are we just chasing a general access violation due to an >> unknown reason? >> >> Again=2C is this ongoing or should some changes be merged for >> the release? >> >> Olaf >> >> Quoting Tony Hosking : >> >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>> >>>> ps: notice: >>>> >>>>>> resumed system calls will return an error value of EINTR >>> >>> Not a problem. We already cope with that in ThreadPThread. >>> >>>> We probably need to handle that in a bunch of places. >>>> But some things like read/write will return just having done a >>>> partial read/write? >>> >>> Huh? Should already be done? >>> >>>> Maybe something more cooperative would be easier? >>>> Or even user threads?? >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>>> on some OpenBSD platforms=2C like ppc/x86. >>> >>> These are available for OpenBSD already. Not sure why you synthesized. >>> >>>> >>>> - Jay >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Not sure how the formatting will come through..but yes. >>>> Hopefully on all processor architectures. >>>> >>>> >>>> "np" means "not portable"=2C ok >>>> >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi >>>> >>>> appropos suspend >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>>> >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>>> PTHREAD_SUSPEND_NP(3) >>>> >>>> NAME >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>>> pthread_resume_all_np - suspend and resume thread(s) >>>> >>>> SYNOPSIS >>>> #include=20 >>>> #include=20 >>>> >>>> int >>>> pthread_suspend_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_suspend_all_np(void)=3B >>>> >>>> int >>>> pthread_resume_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_resume_all_np(void)=3B >>>> >>>> DESCRIPTION >>>> The pthread_suspend_np() function interrupts the given thread >>>> and places >>>> it in a suspended state. >>>> >>>> The pthread_suspend_all_np() function interrupts all threads except the >>>> current thread and places them in a suspended state. >>>> >>>> The pthread_resume_np() function resumes a thread suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_all_np() function resumes all threads suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_np() and pthread_resume_all_np() functions >>>> have no ef- >>>> fect on threads that have not been suspended. >>>> >>>> Suspending and resuming a thread has an effect similar to that >>>> of receiv- >>>> ing a signal=2C namely that resumed system calls will return an >>>> error value >>>> of EINTR. >>>> >>>> RETURN VALUES >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>>> >>>> [ESRCH] No thread could be found corresponding to that >>>> specified by >>>> the given thread ID. >>>> >>>> The pthread_suspend_np() function fails if: >>>> >>>> [EDEADLK] Attempt to suspend the current thread. >>>> >>>> SEE ALSO >>>> pthread_cancel(3)=2C pthreads(3) >>>> >>>> STANDARDS >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > np() >>>> and pthread_resume_all_np() functions are non-portable and may not be >>>> supported with the above semantics on other POSIX systems. >>>> >>>> OpenBSD 4.5 May 31=2C 2007 >>>> 1 >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>>> >>>> - Jay >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> OpenBSD has good documentation.. (man pages) >>>> >>>> - Jay (phone) >>>> >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>>> >>>> Stefan=2C >>>> >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>>> >>>> Olaf >>>> >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>>> From: Tony Hosking=20 >>>> Reply-To: Tony Hosking=20 >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> To: Olaf Wagner=20 >>>> Cc: Jay K =2C m3devel=20 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>>> If so then we could work avoid the signals entirely (as we do on OS >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> ----- End forwarded message ----- >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C >>>> pthread_resume? If so then we could work avoid the signals entirely >>>> (as we do on OS X). All that is needed is implementation of >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>>> RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >> >> >> >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > 5 >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > n >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > 194 >> = > -- 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 Mon Oct 26 15:01:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:01:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay > Date: Mon, 26 Oct 2009 13:49:24 +0100 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Quoting Jay K : > > > WIndows threads are ok. > In the release branch, too? > > > OpenBSD are not currently=2C never have been. > Do we have a work-around or are we going to ignore this for the release? > > > Windows problems are probably in Trestle. > > Have been for many years apparently. > Do we wait for a fix here for RC4? > > I can see that you and Tony are quite busy, but there are no visible > changes for the release status. > > Olaf > > > =20 > > - Jay > > > > ---------------------------------------- > >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > >> From: wagner at elegosoft.com > >> To: hosking at cs.purdue.edu > >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >> > >> Hi again=2C > >> > >> I'm still uncertain regarding the thread status. Hudson hasn't built > >> anything for about a month=2C so there have been no check-ins to the > >> release branch. > >> > >> (1) Has the OpenBSD problem been fixed or worked around? > >> If so=2C what are the relevant changes that should me merged from > >> trunk? > >> > >> The ChangeLog shows a lot of commits on head... > >> > >> (2) Is there still a problem in Windows threads? > >> Or are we just chasing a general access violation due to an > >> unknown reason? > >> > >> Again=2C is this ongoing or should some changes be merged for > >> the release? > >> > >> Olaf > >> > >> Quoting Tony Hosking : > >> > >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: > >>> > >>>> ps: notice: > >>>> > >>>>>> resumed system calls will return an error value of EINTR > >>> > >>> Not a problem. We already cope with that in ThreadPThread. > >>> > >>>> We probably need to handle that in a bunch of places. > >>>> But some things like read/write will return just having done a > >>>> partial read/write? > >>> > >>> Huh? Should already be done? > >>> > >>>> Maybe something more cooperative would be easier? > >>>> Or even user threads?? > >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp > >>>> on some OpenBSD platforms=2C like ppc/x86. > >>> > >>> These are available for OpenBSD already. Not sure why you synthesized. > >>> > >>>> > >>>> - Jay > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> Not sure how the formatting will come through..but yes. > >>>> Hopefully on all processor architectures. > >>>> > >>>> > >>>> "np" means "not portable"=2C ok > >>>> > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi > >>>> > >>>> appropos suspend > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 > >>>> > >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > >>>> PTHREAD_SUSPEND_NP(3) > >>>> > >>>> NAME > >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C > >>>> pthread_resume_all_np - suspend and resume thread(s) > >>>> > >>>> SYNOPSIS > >>>> #include=20 > >>>> #include=20 > >>>> > >>>> int > >>>> pthread_suspend_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_suspend_all_np(void)=3B > >>>> > >>>> int > >>>> pthread_resume_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_resume_all_np(void)=3B > >>>> > >>>> DESCRIPTION > >>>> The pthread_suspend_np() function interrupts the given thread > >>>> and places > >>>> it in a suspended state. > >>>> > >>>> The pthread_suspend_all_np() function interrupts all threads except the > >>>> current thread and places them in a suspended state. > >>>> > >>>> The pthread_resume_np() function resumes a thread suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_all_np() function resumes all threads suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_np() and pthread_resume_all_np() functions > >>>> have no ef- > >>>> fect on threads that have not been suspended. > >>>> > >>>> Suspending and resuming a thread has an effect similar to that > >>>> of receiv- > >>>> ing a signal=2C namely that resumed system calls will return an > >>>> error value > >>>> of EINTR. > >>>> > >>>> RETURN VALUES > >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: > >>>> > >>>> [ESRCH] No thread could be found corresponding to that > >>>> specified by > >>>> the given thread ID. > >>>> > >>>> The pthread_suspend_np() function fails if: > >>>> > >>>> [EDEADLK] Attempt to suspend the current thread. > >>>> > >>>> SEE ALSO > >>>> pthread_cancel(3)=2C pthreads(3) > >>>> > >>>> STANDARDS > >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > > np() > >>>> and pthread_resume_all_np() functions are non-portable and may not be > >>>> supported with the above semantics on other POSIX systems. > >>>> > >>>> OpenBSD 4.5 May 31=2C 2007 > >>>> 1 > >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > >>>> > >>>> - Jay > >>>> > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> OpenBSD has good documentation.. (man pages) > >>>> > >>>> - Jay (phone) > >>>> > >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: > >>>> > >>>> Stefan=2C > >>>> > >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? > >>>> > >>>> Olaf > >>>> > >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- > >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 > >>>> From: Tony Hosking=20 > >>>> Reply-To: Tony Hosking=20 > >>>> Subject: Re: [M3devel] Status of threads for RC4? > >>>> To: Olaf Wagner=20 > >>>> Cc: Jay K =2C m3devel=20 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? > >>>> If so then we could work avoid the signals entirely (as we do on OS > >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C > >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> ----- End forwarded message ----- > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C > >>>> pthread_resume? If so then we could work avoid the signals entirely > >>>> (as we do on OS X). All that is needed is implementation of > >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and > >>>> RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >> > >> > >> > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > > 5 > >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > > n > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > > 194 > >> = > > > > > > -- > 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 hosking at cs.purdue.edu Mon Oct 26 15:07:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:07:55 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD user-level threading should work one way (using getcontext/ setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: > > Windows threads should be ok for release..though..there is > definitely divergence in head. > > There was really just one main problem in Win32 threads, a copy/ > paste error I made a few months ago. > > It is fixed in release. > > > > OpenBSD we know the fix but not sure we'll get to it. > > > > There are still problems with mentor and/or Juno and/or Trestle, all > Windows specific. > > To some extent there are problems going back years, but things seem > to be much worse lately. > > I'm still investigating. > > > > - Jay > > >> Date: Mon, 26 Oct 2009 13:49:24 +0100 >> From: wagner at elegosoft.com >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Quoting Jay K : >> >>> WIndows threads are ok. >> In the release branch, too? >> >>> OpenBSD are not currently=2C never have been. >> Do we have a work-around or are we going to ignore this for the >> release? >> >>> Windows problems are probably in Trestle. >>> Have been for many years apparently. >> Do we wait for a fix here for RC4? >> >> I can see that you and Tony are quite busy, but there are no visible >> changes for the release status. >> >> Olaf >> >>> =20 >>> - Jay >>> >>> ---------------------------------------- >>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>> From: wagner at elegosoft.com >>>> To: hosking at cs.purdue.edu >>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Hi again=2C >>>> >>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>> built >>>> anything for about a month=2C so there have been no check-ins to >>>> the >>>> release branch. >>>> >>>> (1) Has the OpenBSD problem been fixed or worked around? >>>> If so=2C what are the relevant changes that should me merged from >>>> trunk? >>>> >>>> The ChangeLog shows a lot of commits on head... >>>> >>>> (2) Is there still a problem in Windows threads? >>>> Or are we just chasing a general access violation due to an >>>> unknown reason? >>>> >>>> Again=2C is this ongoing or should some changes be merged for >>>> the release? >>>> >>>> Olaf >>>> >>>> Quoting Tony Hosking : >>>> >>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>> >>>>>> ps: notice: >>>>>> >>>>>>>> resumed system calls will return an error value of EINTR >>>>> >>>>> Not a problem. We already cope with that in ThreadPThread. >>>>> >>>>>> We probably need to handle that in a bunch of places. >>>>>> But some things like read/write will return just having done a >>>>>> partial read/write? >>>>> >>>>> Huh? Should already be done? >>>>> >>>>>> Maybe something more cooperative would be easier? >>>>>> Or even user threads?? >>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>> longjmp >>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>> >>>>> These are available for OpenBSD already. Not sure why you >>>>> synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 26 15:08:41 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:08:41 -0400 Subject: [M3devel] Fwd: Fwd: Re: Status of threads for RC4? References: <25DE2087-D1CB-4051-8D2B-B29040ABDCCE@cs.purdue.edu> Message-ID: 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 Begin forwarded message: > From: Tony Hosking > Date: 26 October 2009 10:08:20 GMT-04:00 > To: Jay K > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > On 26 Oct 2009, at 10:01, Jay K wrote: > >> >> Windows threads should be ok for release..though..there is >> definitely divergence in head. >> >> There was really just one main problem in Win32 threads, a copy/ >> paste error I made a few months ago. >> >> It is fixed in release. >> >> >> >> OpenBSD we know the fix but not sure we'll get to it. >> >> >> >> There are still problems with mentor and/or Juno and/or Trestle, >> all Windows specific. >> >> To some extent there are problems going back years, but things seem >> to be much worse lately. >> >> I'm still investigating. > > Probably worse because you are on multicore? So you see the races > more often? > >> >> >> >> - Jay >> >> >>> Date: Mon, 26 Oct 2009 13:49:24 +0100 >>> From: wagner at elegosoft.com >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Quoting Jay K : >>> >>>> WIndows threads are ok. >>> In the release branch, too? >>> >>>> OpenBSD are not currently=2C never have been. >>> Do we have a work-around or are we going to ignore this for the >>> release? >>> >>>> Windows problems are probably in Trestle. >>>> Have been for many years apparently. >>> Do we wait for a fix here for RC4? >>> >>> I can see that you and Tony are quite busy, but there are no visible >>> changes for the release status. >>> >>> Olaf >>> >>>> =20 >>>> - Jay >>>> >>>> ---------------------------------------- >>>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>>> From: wagner at elegosoft.com >>>>> To: hosking at cs.purdue.edu >>>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>>> >>>>> Hi again=2C >>>>> >>>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>>> built >>>>> anything for about a month=2C so there have been no check-ins to >>>>> the >>>>> release branch. >>>>> >>>>> (1) Has the OpenBSD problem been fixed or worked around? >>>>> If so=2C what are the relevant changes that should me merged from >>>>> trunk? >>>>> >>>>> The ChangeLog shows a lot of commits on head... >>>>> >>>>> (2) Is there still a problem in Windows threads? >>>>> Or are we just chasing a general access violation due to an >>>>> unknown reason? >>>>> >>>>> Again=2C is this ongoing or should some changes be merged for >>>>> the release? >>>>> >>>>> Olaf >>>>> >>>>> Quoting Tony Hosking : >>>>> >>>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>>> >>>>>>> ps: notice: >>>>>>> >>>>>>>>> resumed system calls will return an error value of EINTR >>>>>> >>>>>> Not a problem. We already cope with that in ThreadPThread. >>>>>> >>>>>>> We probably need to handle that in a bunch of places. >>>>>>> But some things like read/write will return just having done a >>>>>>> partial read/write? >>>>>> >>>>>> Huh? Should already be done? >>>>>> >>>>>>> Maybe something more cooperative would be easier? >>>>>>> Or even user threads?? >>>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>>> longjmp >>>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>>> >>>>>> These are available for OpenBSD already. Not sure why you >>>>>> synthesized > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:13:15 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:13:15 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Tony, I understand "as long as OpenBSD pthreads is userthreads, we might as well use our own" but I don't understand "pthread threading is unlikely to work on OpenBSD". Shouldn't it work pretty ok actually? Except for the suspend/resume stuff? It should be easy to have OpenBSD custom stuff like Darwin has custom stuff, right? I was of the impression that the stack could merely be heap allocated, but perhaps it takes more than that? get/set/make/swapcontext are not available as far as I know on OpenBSD, but I do have them working on OpenBSD/x86 and OpenBSD/ppc (no OpenBSD/ppc currently to test on, but not a big deal to bring up it and others). Regarding Windows I did remove the idle thread cache, which is good and bad. The removal was mismotivated, and it might be a good thing, might be a bad thing. - Jay CC: wagner at elegosoft.com; m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Date: Mon, 26 Oct 2009 10:07:55 -0400 OpenBSD user-level threading should work one way (using getcontext/setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay Date: Mon, 26 Oct 2009 13:49:24 +0100 From: wagner at elegosoft.com To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Quoting Jay K : WIndows threads are ok. In the release branch, too? OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? Windows problems are probably in Trestle. Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf =20 - Jay ---------------------------------------- Date: Mon=2C 26 Oct 2009 10:35:08 +0100 From: wagner at elegosoft.com To: hosking at cs.purdue.edu CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Hi again=2C I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month=2C so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so=2C what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again=2C is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : On 21 Oct 2009=2C at 20:12=2C Jay K wrote: ps: notice: resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms=2C like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:57:45 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:57:45 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, obviously..it might have to do with if the text windows/controls/widgets/vbts are coverd up or when they are uncovered. I believe I've seen the heap corruption now once in an older 5.2.6... - Jay > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 09:46:06 +0000 > > > Here's a better view of the problem, again in 5.2.6. > Notice 00e15888 repeating in both threads' parameters. > This seems like a simple "add a lock use somewhere" problem > but I have little idea of Trestle's locking protocols, > apparently a complicated topic. > You know, somehow redisplay/reshape need more serialization, > but I don't know exactly what. > > > The call to Capture fails with a dereference of NIL in the LOCK use. > > > The unusual part I think is: > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > > > That's probably not how Redisplay is normally used? > > > I'll look again at head and see if the behavior resembles 5.2.6. > > > 0:000> .logopen c:\2.log > Opened log file 'c:\2.log' > 0:000> ~*kv99 > . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr Args to Child > 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] > 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] > 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] > 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] > 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] > 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] > 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] > 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] > 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] > 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] > 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] > 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] > 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff > WARNING: Stack unwind information not available. Following frames may be wrong. > 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 > > > 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr Args to Child > WARNING: Stack unwind information not available. Following frames may be wrong. > 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet > 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] > 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] > 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] > 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] > 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] > 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] > 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] > 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] > 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > > > > > > > > > > full disclosure: > > This version has the bug where non-standalone NT apps don't do set operations correctly. > > > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > > I'll retest with standalone. > > > > > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > > > > > - Jay > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Mon, 26 Oct 2009 02:45:57 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > > > 0:000> ~*k > > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > > 0510fec0 00391ebd kernel32!Sleep+0xf > > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > > 0520fe30 7e418816 USER32!GetDC+0x6d > > 0520fe98 7e4189cd USER32!GetDC+0x14f > > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > > 0540fee4 00391ebd kernel32!Sleep+0xf > > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > > 9] > > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > > 0] > > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > > 0] > > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 0:000> > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > > > (1374.1548): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sun, 25 Oct 2009 11:55:42 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > > > (a70.158c): Access violation - code c0000005 (first chance) > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0:000> > > > > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sat, 24 Oct 2009 14:19:07 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > > > quick experiment: > > #include > > #include > > int main() > > { > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > > > return 0; > > } > > > > => > > 00350000 > > 00360000 > > 00370000 > > > > - Jay > > > > > > ________________________________ > > > > From: hosking at cs.purdue.edu > > To: jay.krell at cornell.edu > > Date: Fri, 23 Oct 2009 14:07:02 -0400 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > > > > > Tony, a few months ago I changed the NT pagesize to 64K, > > so I could simply allocate with VirtualAlloc, and not waste any. > > You think that could be a problem? > > Most platforms use 8K. > > This used to have to relate to the hardware, when there > > was VM-synchronized GC, but no longer. > > > > Also I just hit control-c and: > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > > > > > We've discussed before that things are not control-c safe. > > Maybe related??? > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes > > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > > I've also grown stacks to rule that out. > > Here are some of the crashes. > > > > > > > > (adc.f8): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > > m3core!RTCollector__Move+0x51: > > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > > 0:000> r esi > > esi=001ffffc > > 0:000> k > > ChildEBP RetAddr > > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > (1d8.148): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k 999 > > ChildEBP RetAddr > > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > > 0:000> > > > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k99 > > ChildEBP RetAddr > > 034bf1b0 005e6067 ntdll!DbgBreakPoint > > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > > > > > > > > > > > *** > > *** runtime error: > > *** <*ASSERT*> failed. > > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > > ......... ......... ... more frames ... > > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k999 > > ChildEBP RetAddr > > 0290eb14 005e6067 ntdll!DbgBreakPoint > > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > - Jay > > > > > > > > [snip] > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 05:28:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 00:28:29 -0400 Subject: [M3devel] build status on Vista Message-ID: <4AE63DA2.1E75.00D7.1@scires.com> I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 06:10:17 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 01:10:17 -0400 Subject: [M3devel] organization of scripts folder Message-ID: <4AE6476E.1E75.00D7.1@scires.com> I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 06:21:43 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 26 Oct 2009 22:21:43 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. > > So, I wound up deleting everything and checking out everything > afresh on my Windows Vista platform. > > I've run a new build against everything (all packages in > PkgInfo.txt). This is against the HEAD branch (I think). > > Here are some errors that occur during the build. > > The last two have failed in the past, but I get different output > now. The first one is new. > > C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: > quake runtime > error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line > 263: syntax err > or: "end" or "else" expected after "if" > > --procedure-- -line- -file--- > include_dir -- > 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib > \NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\m3-sys\m3cc>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > gmake --version | findstr.exe /c:"GNU Make" > 'gmake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gmake because it does not appear to be GNU make > gnumake --version | findstr.exe /c:"GNU Make" > 'gnumake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gnumake because it does not appear to be GNU make > /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make > /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make > /usr/local/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gmake because it does not appear to be GNU make > /usr/local/gnumake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gnumake because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line > 71: quake > untime error: no GNU make found > > --procedure-- -line- -file--- > error -- > ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ > src/gnumake > common > include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile > 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C > :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcT > ok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\sr > c\m3makefile > 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT > 386\m3make.args > > Fatal Error: package build failed > > Regards, > Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 08:13:05 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 03:13:05 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> Message-ID: <4AE66434.1E75.00D7.1@scires.com> Jay: The problem is with the following line: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 Notice the weird path. The following does work: C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 Not sure why it is trying to go down the "pkg" tree to find an EXE since these are all in "bin". Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". Here is the verbose compiler output: C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in ..\NT386 --- cd ..\NT386 ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src\m3makefile 5 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.01 2 removing temporary files 0.01 1 garbage collection 0.09 other --------------------------------------------------- 0.10 TOTAL rm m3make.args cd ..\src Regards, Randy Coleburn >>> 10/27/2009 1:21 AM >>> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:01:36 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:01:36 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE66434.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> <4AE66434.1E75.00D7.1@scires.com> Message-ID: <677BA053-A1E4-4EA6-849C-8941ECD9ABC5@hotmail.com> I meant cvsup but ok, that too sort of. If "program" lacks capital "p" file is only in pkg store. I'll see about the slashes. - Jay (phone) On Oct 27, 2009, at 12:13 AM, "Randy Coleburn" wrote: > Jay: > > The problem is with the following line: > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > > Notice the weird path. > > The following does work: > > C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 > > Not sure why it is trying to go down the "pkg" tree to find an EXE > since these are all in "bin". > > Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". > > Here is the verbose compiler output: > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 - > verbose > EVAL ("C:\cm3\bin\cm3.cfg") > --- building in ..\NT386 --- > > cd ..\NT386 > ignoring ..\src\m3overrides > > EVAL ("m3make.args") > rm .M3SHIP > rm .M3OVERRIDES > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok > \NT386\ktok ..\src\Calc.t -o CalcTok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\src\m3makefile > 5 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT386\m3make.args > > Fatal Error: package build failed > > seconds #times operation > 0.01 2 removing temporary files > 0.01 1 garbage collection > 0.09 other > --------------------------------------------------- > 0.10 TOTAL > > rm m3make.args > cd ..\src > > Regards, > Randy Coleburn > > > >>> 10/27/2009 1:21 AM >>> > m3cc isn't supposed to build for NT, nor probably the others. I > tried a simple filtering of m3cc weeks ago but it broke much, oddly. > That specific error in cvsup not expected. Can you look closer and > try to fix it? > > - Jay (phone) > > On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" > wrote: > >> I discovered that I wasn't getting all the updates via CVS. Not >> sure what when wrong, but I think it had to do with a prior update >> pointing to one of the release engineering branches and I couldn't >> seem to get it to update from the HEAD anymore. >> >> So, I wound up deleting everything and checking out everything >> afresh on my Windows Vista platform. >> >> I've run a new build against everything (all packages in >> PkgInfo.txt). This is against the HEAD branch (I think). >> >> Here are some errors that occur during the build. >> >> The last two have failed in the past, but I get different output >> now. The first one is new. >> >> C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: >> quake runtime >> error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line >> 263: syntax err >> or: "end" or "else" expected after "if" >> >> --procedure-- -line- -file--- >> include_dir -- >> 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib >> \NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\m3-sys\m3cc>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> gmake --version | findstr.exe /c:"GNU Make" >> 'gmake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gmake because it does not appear to be GNU make >> gnumake --version | findstr.exe /c:"GNU Make" >> 'gnumake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gnumake because it does not appear to be GNU make >> /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/pkg/bin/gmake because it does not appear to be GNU >> make >> /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/sfw/bin/gmake because it does not appear to be GNU >> make >> /usr/local/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gmake because it does not appear to be GNU make >> /usr/local/gnumake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gnumake because it does not appear to be GNU >> make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", >> line 71: quake >> untime error: no GNU make found >> >> --procedure-- -line- -file--- >> error -- >> ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ >> src/gnumake >> common >> include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile >> 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> The system cannot find the path specified. >> "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime >> error: exit 1: C >> :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o CalcT >> ok.i3 >> >> --procedure-- -line- -file--- >> exec -- >> _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl >> _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl >> token 73 C:\cm3\pkg\parserlib\src\parser.tmpl >> include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\sr >> c\m3makefile >> 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\NT >> 386\m3make.args >> >> Fatal Error: package build failed >> >> Regards, >> Randy Coleburn > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:02:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:02:28 -0700 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target > install > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of > platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, > CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Oct 27 11:57:13 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 27 Oct 2009 11:57:13 +0100 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 rcoleburn at scires.com Tue Oct 27 15:46:06 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 10:46:06 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Message-ID: <4AE6CE5D.1E75.00D7.1@scires.com> Olaf: I tried the -A option, but ran into a bunch of errors. Perhaps the fault lies with TortoiseCVS or CVSNT, but I could never get it to work right. I hadn't made any mods to the source tree on the Vista box, so blowing everything away and starting over didn't cause me to lose anything. Of course, that's not the case on my XP box, so I've got to get to the root of this problem at some point. Thanks for the help. Regards, Randy >>> Olaf Wagner 10/27/2009 6:57 AM >>> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 16:08:39 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 11:08:39 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> References: <4AE6476E.1E75.00D7.1@scires.com> <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> Message-ID: <4AE6D3A7.1E75.00D7.1@scires.com> I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 00:03:50 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 28 Oct 2009 16:03:50 -0700 (PDT) Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6D3A7.1E75.00D7.1@scires.com> Message-ID: <394893.44350.qm@web23608.mail.ird.yahoo.com> Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends? support already present in WebScape and DeckScape? web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed? checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. ? --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts.? Not sure if anyone else uses them. ? Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1.? Start the IDE. 2.? Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3.? Open a cm3 command shell window in a particular folder.? I've integrated this with the Explorer context menu for even greater utility. 4.? Automate building of multiple packages based on the concept of a project. etc. ? Perhaps others would have similar scripts that should be available as part of the install. ? So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included.? End users are free to use the scripts, not use them, or even remove them after the product is installed. ? What do others think? ? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. ?- Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. ? Here is the current folder structure: ? scripts +---config +---doc +---examples +---iphone |?? \---1 +---python +---regression \---win ? In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install.? Later, the other subfolders were added, including the one named "win". ? It seems there are perhaps multiple intentions for the scripts folder.? For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3.? There are other scripts that would be useful for certain target platforms as part of the installed system.? There may be other scripts useful for testing. ? I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms.? This script will replace some of the old ones I have out there.? It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista.? I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. ? Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. ? As a first cut, I propose something along the following lines: ? scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin +???+---windows = dev scripts written for Microsoft Windows (BAT, CMD) +?? +---posix = dev scripts written for unix shell (sh, bash, etc.) +?? \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install +?? +---common = scripts common to all target platforms+???+---windows = BAT/CMD scripts for Microsoft Windows +?? +---posix = shell scripts for POSIX platforms (sh, bash, etc.) +?? +---python = scripts written in python (applicable to any platform with python) +?? \---XXX = scripts for target platform XXX (XXX is name of platform) +???????????? (assuming XXX needs something special not covered above) \---test = scripts used for regression testing ????+---windows = test scripts written for Microsoft Windows (BAT, CMD) ??? +---posix = test scripts written for unix shell (sh, bash, etc.) ??? \---python = test scripts written in python ? What do you think? ? Regards, Randy Coleburn ? ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 06:00:34 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 05:00:34 +0000 (GMT) Subject: [M3devel] organization of scripts folder Message-ID: <689127.6955.qm@web23601.mail.ird.yahoo.com> To be clearer and explain with some video material about embedded Obliq in DeckScape mail news and web browser, take a look at: SRC Video Report 141b that accompanied SRC Research Report 142, Collaborative Active Textbooks available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-142.html the digitized videotape from here uploaded by the author: http://www.youtube.com/watch?v=hbxjYq1YK38 Now about Webcard by Marc Brown the integrated mail reader with folders (tags), news reader and web browser described in SRC Research Report 139a available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/SRC-139a.html and the digitized Video report 139b from: http://www.ibiblio.org/openvideo/video/chi/chi97_03_m1.mpg Also a feature SRC Research Report 140, Zippers from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-140.html And the SRC Research Report 135a, DeckScape: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-135a.html and its accompanying digitized videotape, Video Report 135b from: http://www.open-video.org/details.php?videoid=5024 Related with Zeus, SRC Research Report 75, algorithm animation system related with distributed active objects application from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-075.html and a closely related digitized videotape from: http://open-video.org/details.php?videoid=8118 Also the SRC Research Report 110a, Algorithm Animation Using 3D Interactive Graphics available from http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-110a.html and the accompanying SRC Video Report 110b http://www.youtube.com/watch?v=zIgu9q0vVc0 besides the closely related and obliq based SRC Research Report 128a, A Library for Visualizing Combinatorial Structures http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-128a.html and the accompanying SRC Video Report 128b http://www.youtube.com/watch?v=EIOrizawnsc And two videos more for other applications made on Forms VBt: http://www.open-video.org/details.php?videoid=8107 and trestle: http://www.open-video.org/details.php?videoid=8143 Thanks in advance and hope it helps to better document video reports --- El mi?, 28/10/09, Daniel Alejandro Benavides D. escribi?: De: Daniel Alejandro Benavides D. Asunto: Re: [M3devel] organization of scripts folder Para: "" , "Randy Coleburn" Fecha: mi?rcoles, 28 octubre, 2009 6:03 Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends support already present in WebScape and DeckScape web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms+ +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn From wagner at elegosoft.com Thu Oct 29 10:14:51 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 29 Oct 2009 10:14:51 +0100 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Hi Randy, I think it is a good idea to clean up and restructure the scripts folder. The current layout has grown and was never 'designed'. However, we should make sure that nothing breaks when we move scripts around, especially for regression testing in Tinderbox and Hudson. So changing things is fine as long as we consider and correct the potential damage. As a backup, we could provide a script which creates symbolic links for some current scripts which are called from outside the scripts package itself in our test frameworks. Olaf Quoting Randy Coleburn : > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target install > > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn -- 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 hendrik at topoi.pooq.com Thu Oct 29 15:40:56 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Thu, 29 Oct 2009 10:40:56 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> References: <4AE6476E.1E75.00D7.1@scires.com> <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Message-ID: <20091029144056.GA24509@topoi.pooq.com> On Thu, Oct 29, 2009 at 10:14:51AM +0100, Olaf Wagner wrote: > Hi Randy, > > I think it is a good idea to clean up and restructure the scripts > folder. The current layout has grown and was never 'designed'. Speaking as a naive Modula 3 user and installer (well, not so naive after all these years), I found the scripts confusing. The biggest problem was to distinguish scripts that were meant to be used directly by the user and those meant to be used by other scripts. I also found that the scripts were not adequately documented -- oh, they were documented enough that once you were familiar with them, you'd know where to look for detaile you had forgotten, but not so a beginner would find it easy to figure which to use in the first place. Any documentation of reorganisation that makes these distinctions clear would be welcome. > > However, we should make sure that nothing breaks when we move scripts > around, especially for regression testing in Tinderbox and Hudson. Well, if reorganising makes it easier to get our current release through regression testing, I'm all for it. But I'd say it's really important to get a release out -- at the moment we don't really have one that's adequate for someone newly sold on the merits of Modula 3. So if there's a signoficant risk of a reorganisatin delaying things, perhaps we should hold off a bit. It seems that the current RC3 is not really adequate -- important components like m3gdb don't install properly from the binary downloads directory. And RC4 is held up on regression testing which shows significant problems in a few packages (Juno ocmes to ming). These problems appear to involve the interaction between the package, garbage colletion, multitasking, and the details of particular platforms. They are difficult problems, and it is not at all clear that they can be solved quickly, or even whether they are regressions. I'd very much like to see a RC4 that fixes the problems we've already fixed in RC3. Some of them seem to be installation issues. At least, with a current RC4, flaws and all, we would know for sure whether the installation problems in RC3 have really been fixed. > So changing things is fine as long as we consider and correct the > potential damage. As a backup, we could provide a script which creates > symbolic links for some current scripts which are called from outside > the scripts package itself in our test frameworks. That could help. -- hendrik > > Olaf > From rcoleburn at scires.com Thu Oct 29 20:26:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 29 Oct 2009 15:26:29 -0400 Subject: [M3devel] non-deterministic behavior on Windows Message-ID: <4AE9B312.1E75.00D7.1@scires.com> Something is wrong, but I don't know what yet. I'm seeing non-deterministic behavior on Windows XP and Vista. I am building against the head branch. On multiple runs of each build cycle, I am getting different errors. That is, sometime a package will fail to build/ship on one build cycle, then it will work on the next. I've even gone back and tried to rebuild or reship individual packages that failed and most always they will build or ship fine. For a while, I thought it might be my antivirus program. But I am getting same behavior on two different machines and each machine has a different AV program. I'll keep investigating, but something is definitely wrong. I am going to try uninstalling my AV program on one machine just to see if that makes any difference. Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 29 22:32:52 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 29 Oct 2009 14:32:52 -0700 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <4AE9B312.1E75.00D7.1@scires.com> References: <4AE9B312.1E75.00D7.1@scires.com> Message-ID: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> AV programs are notorious for seemingly nondeterministic problems. Sharing violation? Access denied? File not found? Definitely try disabling or uninstalling them. - Jay (phone) On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" wrote: > Something is wrong, but I don't know what yet. > > I'm seeing non-deterministic behavior on Windows XP and Vista. > > I am building against the head branch. > > On multiple runs of each build cycle, I am getting different > errors. That is, sometime a package will fail to build/ship on one > build cycle, then it will work on the next. > > I've even gone back and tried to rebuild or reship individual > packages that failed and most always they will build or ship fine. > > For a while, I thought it might be my antivirus program. But I am > getting same behavior on two different machines and each machine has > a different AV program. > > I'll keep investigating, but something is definitely wrong. > > I am going to try uninstalling my AV program on one machine just to > see if that makes any difference. > > Regards, > Randy Coleburn From dabenavidesd at yahoo.es Thu Oct 29 23:20:32 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 22:20:32 +0000 (GMT) Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> Message-ID: <552644.47206.qm@web23601.mail.ird.yahoo.com> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > From rcoleburn at scires.com Fri Oct 30 05:25:50 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Fri, 30 Oct 2009 00:25:50 -0400 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <552644.47206.qm@web23601.mail.ird.yahoo.com> References: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> <552644.47206.qm@web23601.mail.ird.yahoo.com> Message-ID: <4AEA3164.1E75.00D7.1@scires.com> Ok, I think maybe the AntiVirus is causing the problems. I upgraded to a new version of my AV program a couple of weeks ago. After uninstalling it completely, the builds seem to work again. Perhaps the trouble is due to fact that I "upgraded" an in-place installation instead of first uninstalling completely. I am going to try and reinstall my AV program and see how it fares. Regards, Randy >>> "Daniel Alejandro Benavides D." 10/29/2009 6:20 PM >>> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 14:40:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? Message-ID: I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 15:21:43 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 17:07:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 16:07:29 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: ok, it's not always 12 bytes in and 4b4. but anyway.. Tony does this make sense? And the atached? I seem to have it failing on an almost consistent address now. So I set write breakpoints "around" it. The object is often at 0x1cf0008. So I set write breakpoints at 0x1cf0000, 0x1cf0004, 0x1cf0008. All the writes are within RTCollector. Hm. Or so I thought. The first few are not always. Surely some of the writes are correct. And some are not? I attached a debugging log. It just goes like: bp main g ba w4 0x1cf0000 "k;g" ba w4 0x1cf0004 "k;g" ba w4 0x1cf0008 "k;g" g I also tried: ba w4 0x1cf0008 "~*k;g" etc. to get all stacks but it didn't seem useful. You know, what if two threads touch an address at about the same time? The debugger might be ambiguous. But it seems nothing else was nearby. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: Re: [M3devel] debugging paranoidgc? The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 1.log Type: application/octet-stream Size: 25716 bytes Desc: not available URL: From mika at async.async.caltech.edu Sat Oct 31 17:11:42 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:11:42 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site Message-ID: <20091031161142.57E771A2097@async.async.caltech.edu> Hello m3devel, I'm running into problems with the current release candidate. I'm attaching a backtrace from one crash, but I think I also am seeing deadlocks in the threading system---my application goes catatonic. Of course it *is* possible it's a bug in my application, but it works on PM3 and on CM3 on PPC_DARWIN. Finally I'm still concerned about threading performance but in the light of the bugs it's hard to say much about it yet, I think... (The program in question is a highly multithreaded stock market simulator.) Mika ============================================================ *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) show args Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". (m3gdb) where #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. ) at ../src/runtime/common/RTProcess.m3:65 #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. ) at ../src/runtime/common/RTError.m3:118 #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTError.m3:40 #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:79 #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:39 #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:47 #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTHooks.m3:110 #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. ) from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:116 #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktIsolator.m3:514 #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../src/Main.m3:734 #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:400 #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:114 #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:123 ---Type to continue, or q to quit--- #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 #23 0x00000000004040de in _start () (m3gdb) up 15 #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) at ../src/thread/PTHREAD/ThreadPThread.m3:589 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; Current language: auto; currently Modula-3 (m3gdb) print r $1 = 11 (m3gdb) ============================================================ From mika at async.async.caltech.edu Sat Oct 31 17:15:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:15:14 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <20091031161514.C7E441A2097@async.async.caltech.edu> More details about the "catatonic" case. It's pretty bad. Even ctrl-\ won't wake it up properly. Ctrl-\ is supposed to cause the program to abort and dump core. It does nothing to my program now! And I think I've "lost threads" before, too. Btw, (90)ginger:~/t>uname -a FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 I'm happy to help debug if someone can give me some pointers... Mika ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) cont Continuing. *** *** runtime error: *** aborted ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) where #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 #2 0x0000000803780da0 in ThreadPThread__sigsuspend () at ../src/thread/PTHREAD/ThreadPThreadC.c:117 #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code 28 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 #4 #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:217 #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:152 #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktAsset.m3:117 #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:469 #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 #16 0x0000000000000000 in ?? () (m3gdb) Mika Nystrom writes: >Hello m3devel, > >I'm running into problems with the current release candidate. >I'm attaching a backtrace from one crash, but I think I also am seeing >deadlocks in the threading system---my application goes catatonic. >Of course it *is* possible it's a bug in my application, but it works >on PM3 and on CM3 on PPC_DARWIN. > >Finally I'm still concerned about threading performance but in the light >of the bugs it's hard to say much about it yet, I think... > >(The program in question is a highly multithreaded stock market >simulator.) > > Mika > >============================================================ > >*** >*** runtime error: >*** <*ASSERT*> failed. >*** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >*** > > >Program received signal SIGABRT, Aborted. >0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >(m3gdb) show args >Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws > -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". >(m3gdb) where >#0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >#1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >#2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >#3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. >) at ../src/runtime/common/RTProcess.m3:65 >#4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. >) at ../src/runtime/common/RTError.m3:118 >#5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTError.m3:40 >#6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:79 >#7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:39 >#8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:47 >#11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTHooks.m3:110 >#14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. >) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >#15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. >) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >#16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktPlace.m3:116 >#17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktIsolator.m3:514 >#18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. >) at ../src/Main.m3:734 >#19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:400 >#20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:114 >#21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. >) at ../src/runtime/common/RTLinker.m3:123 >---Type to continue, or q to quit--- >#22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 >#23 0x00000000004040de in _start () >(m3gdb) up 15 >#15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 >589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; >Current language: auto; currently Modula-3 >(m3gdb) print r >$1 = 11 >(m3gdb) > >============================================================ > > From mika at async.async.caltech.edu Sat Oct 31 19:02:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:02:14 -0700 Subject: [M3devel] m3 RC In-Reply-To: <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> Message-ID: <20091031180214.87E3B1A209C@async.async.caltech.edu> Hi Tony, Yes the thing I just posted to m3devel has @M3paranoidgc. Mika Tony Hosking writes: >That assertion failure is a serious violation of the collector >invariants an suggests that a reference from the stack has not been >processed properly. Is there are red zone on AMD64_FreeBSD? Can you >try running @M3paranoidgc to force heavy checking of GC invariants? > > >On 31 Oct 2009, at 00:46, Mika Nystrom wrote: > >> >> Hi Jay & Tony, sorry to do this but I sent this email to m3devel and I >> don't think it went through. I thought you might be interested :) >> >> Mika >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: RTCollector problems in 5.8.3 RC >> Date: Thu, 29 Oct 2009 13:07:53 -0700 >> From: Mika Nystrom >> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >> >> Hello again, >> >> Well I installed the whole archive from the RC and recompiled rather >> than trying to update to the head. >> >> Here are the files I installed from: >> >> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >> cm3-src-all-5.8.3-RC3.tgz >> >> And this gets much further. Mentor works, e.g. >> >> But after running one of my programs for a while I see the following >> troubling stuff. I don't think the code is doing anything >> particularly >> strange... (this particular code is involved in recycling cons cells >> in >> the Scheme interpreter rather than leaving them for the GC). >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/runtime/common/RTCollector.m3", line 2284 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> re >> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >> code 46 in symbol table. >> ) at ../src/runtime/common/RTCollector.m3:2284 >> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:711 >> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/SchemePrimitive.m3:550 >> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:574 >> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:664 >> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:461 >> - ---Type to continue, or q to quit--- >> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >> 26 in symbol table. >> ) at ../src/Scheme.m3:592 >> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMSCode.m3:176 >> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMS.m3:225 >> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >> #29 0x0000000000000000 in ?? () >> (m3gdb) up 16 >> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >> cons=16_00007ffff1dbcc30) >> at ../src/Scheme.m3:711 >> 711 t.freePairs := cons >> Current language: auto; currently Modula-3 >> (m3gdb) print cons >> $1 = 16_00007ffff1dbcc30 >> (m3gdb) print t.freePairs >> Object has no field or method named "freePairs". >> (m3gdb) whatis cons >> type = GCOMSCode.Pair >> (m3gdb) print t >> $2 = (*16_0000000806b82018*) OBJECT END >> (m3gdb) list >> 706 END; >> 707 >> 708 p.first := SYMrip; >> 709 >> 710 p.rest := t.freePairs; >> 711 t.freePairs := cons >> 712 END >> 713 END ReturnCons; >> 714 >> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >> { E } = >> (m3gdb) >> ... >> (m3gdb) list >> 2279 INC(checkStoreTraced); (* race, so only >> approximate *) >> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >> PageToRef(p) DO >> 2281 TRY >> 2282 RTOS.LockHeap(thread^); >> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >> 2284 <*ASSERT NOT h.gray*> <===== here >> 2285 WITH d = page.desc DO >> 2286 IF h.dirty THEN >> 2287 <*ASSERT NOT d.clean*> >> 2288 ELSE >> (m3gdb) >> >> top shows: >> >> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >> COMMAND >> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >> gcomsmaster >> >> Mika >> >> ------- End of Forwarded Message > From hosking at cs.purdue.edu Sat Oct 31 19:05:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:05:55 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180214.87E3B1A209C@async.async.caltech.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> <20091031180214.87E3B1A209C@async.async.caltech.edu> Message-ID: <00188550-EFBC-43DD-9F4B-1F11163DDD52@cs.purdue.edu> Can you try to update to the latest ThreadPThread on the RC branch? It looks like you are using an older one. On 31 Oct 2009, at 14:02, Mika Nystrom wrote: > Hi Tony, > > Yes the thing I just posted to m3devel has @M3paranoidgc. > > Mika > > Tony Hosking writes: >> That assertion failure is a serious violation of the collector >> invariants an suggests that a reference from the stack has not been >> processed properly. Is there are red zone on AMD64_FreeBSD? Can you >> try running @M3paranoidgc to force heavy checking of GC invariants? >> >> >> On 31 Oct 2009, at 00:46, Mika Nystrom wrote: >> >>> >>> Hi Jay & Tony, sorry to do this but I sent this email to m3devel >>> and I >>> don't think it went through. I thought you might be interested :) >>> >>> Mika >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >>> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: RTCollector problems in 5.8.3 RC >>> Date: Thu, 29 Oct 2009 13:07:53 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >>> >>> Hello again, >>> >>> Well I installed the whole archive from the RC and recompiled rather >>> than trying to update to the head. >>> >>> Here are the files I installed from: >>> >>> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >>> cm3-src-all-5.8.3-RC3.tgz >>> >>> And this gets much further. Mentor works, e.g. >>> >>> But after running one of my programs for a while I see the following >>> troubling stuff. I don't think the code is doing anything >>> particularly >>> strange... (this particular code is involved in recycling cons cells >>> in >>> the Scheme interpreter rather than leaving them for the GC). >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2284 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> re >>> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >>> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >>> code 46 in symbol table. >>> ) at ../src/runtime/common/RTCollector.m3:2284 >>> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:711 >>> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/SchemePrimitive.m3:550 >>> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:574 >>> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:664 >>> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:461 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >>> 26 in symbol table. >>> ) at ../src/Scheme.m3:592 >>> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMSCode.m3:176 >>> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMS.m3:225 >>> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >>> 35 in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >>> #29 0x0000000000000000 in ?? () >>> (m3gdb) up 16 >>> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >>> cons=16_00007ffff1dbcc30) >>> at ../src/Scheme.m3:711 >>> 711 t.freePairs := cons >>> Current language: auto; currently Modula-3 >>> (m3gdb) print cons >>> $1 = 16_00007ffff1dbcc30 >>> (m3gdb) print t.freePairs >>> Object has no field or method named "freePairs". >>> (m3gdb) whatis cons >>> type = GCOMSCode.Pair >>> (m3gdb) print t >>> $2 = (*16_0000000806b82018*) OBJECT END >>> (m3gdb) list >>> 706 END; >>> 707 >>> 708 p.first := SYMrip; >>> 709 >>> 710 p.rest := t.freePairs; >>> 711 t.freePairs := cons >>> 712 END >>> 713 END ReturnCons; >>> 714 >>> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >>> { E } = >>> (m3gdb) >>> ... >>> (m3gdb) list >>> 2279 INC(checkStoreTraced); (* race, so only >>> approximate *) >>> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >>> PageToRef(p) DO >>> 2281 TRY >>> 2282 RTOS.LockHeap(thread^); >>> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >>> 2284 <*ASSERT NOT h.gray*> <===== here >>> 2285 WITH d = page.desc DO >>> 2286 IF h.dirty THEN >>> 2287 <*ASSERT NOT d.clean*> >>> 2288 ELSE >>> (m3gdb) >>> >>> top shows: >>> >>> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >>> COMMAND >>> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >>> gcomsmaster >>> >>> Mika >>> >>> ------- End of Forwarded Message >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:08:05 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:08:05 -0700 Subject: [M3devel] m3 RC In-Reply-To: <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> Message-ID: <20091031180805.9B6091A209C@async.async.caltech.edu> Tony this is what I see: 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; This is not from the head but from the RC archive from the M3 site: cm3-src-all-5.8.3-RC3.tgz Mika Tony Hosking writes: > >--Apple-Mail-17--467794722 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >This looks like a bogus line number for 1.123.2.4. Are you somehow >using an older version of ThreadPThread.m3 (1.123.2.3)? > >On 31 Oct 2009, at 00:47, Mika Nystrom wrote: > >> >> same comment as previous email >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: and another crash.... >> Date: Thu, 29 Oct 2009 13:12:54 -0700 >> From: Mika Nystrom >> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >> >> >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> - ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >> envp=0x7fffffffdf58) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) >> >> Not sure if this could be related to the crash in RTCollector. >> >> Mika >> >> ------- End of Forwarded Message > > >--Apple-Mail-17--467794722 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">This = >looks like a bogus line number for 1.123.2.4.  Are you somehow = >using an older version of ThreadPThread.m3 = >(1.123.2.3)?
color=3D"#0000FF" face=3D"'Gill Sans'">style=3D"font-size: = >medium;">
>
On 31 Oct 2009, = >at 00:47, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

same comment as previous email

------- = >Forwarded Message

Return-Path: <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
X-Original-To: mika
Delivered-To:
href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Recei= >ved: by async.async.caltech.edu (Postfix, from userid 1004)
class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: from = >async.async.caltech.edu (localhost [127.0.0.1])
class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091;
class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >Oct 2009 13:12:54 -0700 (PDT)
To: href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com
cc: = >href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Subje= >ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >-0700
From: Mika Nystrom <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
Message-Id: <
href=3D"mailto:20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >9201254.780EB1A2094 at async.async.caltech.edu>


WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >ABC:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in abort = >() from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in Crash = >(msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/runtime/common/RTProcess.m3:65
#4  0x0000000803768ab2 in = >EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) at = >../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa in = >MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 in = >Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:79
#7  0x0000000803768c3c = >in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:39
#8 = > 0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type code = >30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#9  0x0000000803778eab = >in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee in = >DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e in = >InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab in = >Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 in = >ReportFault (module=3DInvalid C/C++ type code 35 in symbol table.
) = >at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf in = >_m3_fault (arg=3DInvalid C/C++ type code 39 in symbol table.
)
= >  from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:589
#16 = >0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in Init = >(t=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >(mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody (m=3DInvalid = >C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
- ---Type <return> to = >continue, or q <return> to quit---
#22 0x0000000000404194 in = >main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >_m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >15
#15 0x000000080377d1bc in Fork (closure=3D16_0000000807385b48)
= >   at ../src/thread/PTHREAD/ThreadPThread.m3:589
589 = >        WITH r =3D = >pthread_mutex_lock_active() DO <*ASSERT r=3D0*> END;
Current = >language:  auto; currently Modula-3
(m3gdb)

Not sure if = >this could be related to the crash in RTCollector.

= >    Mika

------- End of Forwarded = >Message

= > >--Apple-Mail-17--467794722-- From hosking at cs.purdue.edu Sat Oct 31 19:08:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:08:27 -0400 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: What changes did you make to RTCollector recently? Something changed somewhere *recently* to break GC. On 31 Oct 2009, at 09:40, Jay K wrote: > I'm not sure why/what-changed and maybe this is good, maybe this is > bad, but Juno is now crashing for me every time on Windows with > @paranoidgc. Tips to debug it? > > > Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 > Copyright (c) Microsoft Corporation. All rights reserved. > CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete > @M3paranoidgc > Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols > Executable search path is: > ModLoad: 00400000 004c7000 Juno.exe > ModLoad: 7c900000 7c9b2000 ntdll.dll > ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll > ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll > ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll > ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll > ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll > ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll > ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll > ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll > ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll > ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll > ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll > ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll > ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll > ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll > ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll > ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll > ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll > ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll > ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll > ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll > ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll > ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll > ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll > ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll > ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll > ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL > ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL > ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll > ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll > ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll > ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime > ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1729 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src > \runtime\common\R > TCollector.m3 > 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common > \RTCollector.m > 3 > 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep. > m3 > 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RT > Collector.m3 > 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > ......... ......... ... more frames ... > (d40.9d8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 > edi=005e5d8b > eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:000> .lines > Line number information will be loaded > 0:000> ~*k999 > . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012f4d4 005e5dd7 ntdll!DbgBreakPoint > 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess. > m3 @ 66] > 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m > 3 @ 118] > 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @ > 40] > 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTExcep > tion.m3 @ 79] > 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\commo > n\RTException.m3 @ 39] > 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\commo > n\RTException.m3 @ 47] > 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHook > s.m3 @ 110] > 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTColl > ector.m3 @ 393] > 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 > [..\src\runt > ime\common\RTCollector.m3 @ 1730] > 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap. > m3 @ 202] > 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeap > Map.m3 @ 62] > 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime > \common\RTHeap > Map.m3 @ 57] > 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapM > ap.m3 @ 47] > 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src > \runtime\common\R > TCollector.m3 @ 1658] > 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollec > tor.m3 @ 1630] > 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\ > RTHeapRep.m3 @ 59] > 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runti > me\common\RTCollector.m3 @ 983] > 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RT > Collector.m3 @ 724] > 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RT > Collector.m3 @ 654] > 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RT > Allocator.m3 @ 366] > 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src > \runtime\common\R > TAllocator.m3 @ 224] > 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src > \runtime\common\ > RTAllocator.m3 @ 120] > 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src > \JunoCompile. > m3 @ 254] > 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] > 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] > 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ > 174] > 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ > 263] > 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] > 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLi > nker.m3 @ 399] > 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker > .m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker. > m3 @ 122] > 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet > 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc > 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 > 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 > 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > 01b0fecc 7e4191be ntdll!KiFastSystemCallRet > 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc > 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src > \winvbt\WinTrestl > e.m3 @ 2448] > 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:000> > > > > Out of ignorance I might try to remove Trestle uses and see if it > still crashes. > But that might also be difficult. > (I did remove the filewatcher and metermaid threads.) > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:10:14 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:10:14 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180805.9B6091A209C@async.async.caltech.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: Yeah, and if that is not working properly then it might also explain your collector failures too. Have the RC archives not been updated for the changes to the RC branch? It looks like you are using an old ThreadPThread. On 31 Oct 2009, at 14:08, Mika Nystrom wrote: > Tony this is what I see: > > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; > > This is not from the head but from the RC archive from the M3 site: > > cm3-src-all-5.8.3-RC3.tgz > > Mika > > Tony Hosking writes: >> >> --Apple-Mail-17--467794722 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> This looks like a bogus line number for 1.123.2.4. Are you somehow >> using an older version of ThreadPThread.m3 (1.123.2.3)? >> >> On 31 Oct 2009, at 00:47, Mika Nystrom wrote: >> >>> >>> same comment as previous email >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >>> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: and another crash.... >>> Date: Thu, 29 Oct 2009 13:12:54 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >>> >>> >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >>> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >>> envp=0x7fffffffdf58) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) >>> >>> Not sure if this could be related to the crash in RTCollector. >>> >>> Mika >>> >>> ------- End of Forwarded Message >> >> >> --Apple-Mail-17--467794722 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">This = >> looks like a bogus line number for 1.123.2.4.  Are you somehow = >> using an older version of ThreadPThread.m3 = >> (1.123.2.3)?
> span" = >> color=3D"#0000FF" face=3D"'Gill Sans'">> span" = >> style=3D"font-size: = >> medium;">
> span>>>
On 31 Oct >>> 2009, = >> at 00:47, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">

same comment as previous >> email

------- = >> Forwarded Message

Return-Path: <> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
X-Original-To: mika
Delivered-To:
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Recei= >> ved: by async.async.caltech.edu (Postfix, from userid >> 1004)
> class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >> 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: >> from = >> async.async.caltech.edu (localhost [127.0.0.1])
> class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >> async.async.caltech.edu (Postfix) with ESMTP id >> 7129B1A2091;
> class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >> Oct 2009 13:12:54 -0700 (PDT)
To:
> href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com> a>
cc: = >>
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Subje= >> ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >> -0700
From: Mika Nystrom <
> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
Message-Id: <
> href=3D"mailto: >> 20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >> 9201254.780EB1A2094 at async.async.caltech.edu> a>>


WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> ABC:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >> thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in >> abort = >> () from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () >> at = >> ../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in >> Crash = >> (msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/runtime/common/RTProcess.m3:65
#4   >> 0x0000000803768ab2 in = >> EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) >> at = >> ../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa >> in = >> MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >> ../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 >> in = >> Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:79
#7   >> 0x0000000803768c3c = >> in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) = >> at ../src/runtime/common/RTException.m3:39
#8 = >>  0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type >> code = >> 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:25
#9   >> 0x0000000803778eab = >> in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee >> in = >> DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e >> in = >> InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab >> in = >> Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 >> in = >> ReportFault (module=3DInvalid C/C++ type code 35 in symbol >> table.
) = >> at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf >> in = >> _m3_fault (arg=3DInvalid C/C++ type code 39 in symbol >> table.
)
= >>   from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >> 0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >> symbol table.
) at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
#16 = >> 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in >> symbol = >> table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in >> Init = >> (t=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >> (mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >> ../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody >> (m=3DInvalid = >> C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >> AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >> AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:123
- ---Type <return> >> to = >> continue, or q <return> to quit---
#22 0x0000000000404194 >> in = >> main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >> _m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >> 15
#15 0x000000080377d1bc in Fork >> (closure=3D16_0000000807385b48)
= >>    at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
589 = >>         WITH r =3D = >> pthread_mutex_lock_active() DO <*ASSERT r=3D0*> >> END;
Current = >> language:  auto; currently Modula-3
(m3gdb)

Not >> sure if = >> this could be related to the crash in RTCollector.

= >>     Mika

------- End of Forwarded = >> Message

= >> >> --Apple-Mail-17--467794722-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:15:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:15:55 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Which pthread library are you linking to? On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:19:34 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:19:34 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <87AABBAB-B891-4DB8-9351-7096087BC889@cs.purdue.edu> This looks weird. How do you get from XWait to pthread_cond_signal? Unless perhaps that simply represents the fact that the signal has been fielded. In any case, I'd need to see backtraces from all the threads. This one looks to have successfully fielded a request to stop for GC. On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:20:32 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:20:32 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <8DFB7903-B5EB-4596-A259-2B4CCB87A6BE@cs.purdue.edu> For what it's worth, that call should never fail. It is unlocking a mutex that this thread should already hold. On 31 Oct 2009, at 12:11, Mika Nystrom wrote: > Hello m3devel, > > I'm running into problems with the current release candidate. > I'm attaching a backtrace from one crash, but I think I also am seeing > deadlocks in the threading system---my application goes catatonic. > Of course it *is* possible it's a bug in my application, but it works > on PM3 and on CM3 on PPC_DARWIN. > > Finally I'm still concerned about threading performance but in the > light > of the bugs it's hard to say much about it yet, I think... > > (The program in question is a highly multithreaded stock market > simulator.) > > Mika > > ============================================================ > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) show args > Argument list to give program being debugged when it is started is > "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - > symbology ric -symbology tws -replay mktisolator090910.ticks > 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp > 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 - > sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". > (m3gdb) where > #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 > #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/runtime/common/RTProcess.m3:65 > #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. > ) at ../src/runtime/common/RTError.m3:118 > #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in > symbol table. > ) at ../src/runtime/common/RTError.m3:40 > #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/common/RTException.m3:79 > #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:39 > #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:47 > #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type > code 35 in symbol table. > ) at ../src/runtime/common/RTHooks.m3:110 > #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 > in symbol table. > ) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 > #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 > #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:116 > #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktIsolator.m3:514 > #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in > symbol table. > ) at ../src/Main.m3:734 > #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/runtime/common/RTLinker.m3:400 > #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:114 > #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:123 > ---Type to continue, or q to quit--- > #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, > envp=0x7fffffffdf50) at _m3main.mc:4 > #23 0x00000000004040de in _start () > (m3gdb) up 15 > #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> > END; > Current language: auto; currently Modula-3 > (m3gdb) print r > $1 = 11 > (m3gdb) > > ============================================================ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:26:37 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:26:37 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Message-ID: <20091031182637.1D2DD1A209C@async.async.caltech.edu> Let's see here we go: libc.so.7 => /lib/libc.so.7 (0x804c4e000) -> linking mktisolator generate _m3main.new compare _m3main.new _m3main.mc rm _m3main.new gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\$ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread rm m3make.args cd . Tony Hosking writes: > >--Apple-Mail-21--467118296 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Which pthread library are you linking to? > >On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > >> >> More details about the "catatonic" case. It's pretty bad. Even >> ctrl-\ >> won't wake it up properly. Ctrl-\ is supposed to cause the program to >> abort and dump core. It does nothing to my program now! And I think >> I've "lost threads" before, too. >> >> Btw, >> >> (90)ginger:~/t>uname -a >> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ >> sys/GENERIC amd64 >> >> I'm happy to help debug if someone can give me some pointers... >> >> >> Mika >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) cont >> Continuing. >> >> >> *** >> *** runtime error: >> *** aborted >> >> >> >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >> 28 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >> #4 >> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 >> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:217 >> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:152 >> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/MktAsset.m3:117 >> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:469 >> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >> #16 0x0000000000000000 in ?? () >> (m3gdb) >> >> >> Mika Nystrom writes: >>> Hello m3devel, >>> >>> I'm running into problems with the current release candidate. >>> I'm attaching a backtrace from one crash, but I think I also am >>> seeing >>> deadlocks in the threading system---my application goes catatonic. >>> Of course it *is* possible it's a bug in my application, but it works >>> on PM3 and on CM3 on PPC_DARWIN. >>> >>> Finally I'm still concerned about threading performance but in the >>> light >>> of the bugs it's hard to say much about it yet, I think... >>> >>> (The program in question is a highly multithreaded stock market >>> simulator.) >>> >>> Mika >>> >>> ============================================================ >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) show args >>> Argument list to give program being debugged when it is started is >>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>> symbology ric -symbology tws >>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>> isolate90.src". >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>> 36 in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>> envp=0x7fffffffdf50) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) print r >>> $1 = 11 >>> (m3gdb) >>> >>> ============================================================ >>> >>> > > >--Apple-Mail-21--467118296 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Which pthread library are you = >linking to?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

More details about the "catatonic" case. = > It's pretty bad.  Even ctrl-\
won't wake it up properly. = > Ctrl-\ is supposed to cause the program to
abort and dump core. = > It does nothing to my program now!  And I think
I've "lost = >threads" before, too.

Btw,

(90)ginger:~/t>uname = >-a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 = >07:18:07 UTC 2009     
href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to help = >debug if someone can give me some pointers...


= >    Mika

^\
Program received signal = >SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >runtime error:
*** = >   aborted




^\
Program received = >signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
   at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = >28 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >handler called>
#5  0x0000000804b4829c in __error () from = >/lib/libthr.so.3
#6  0x0000000804b46365 in pthread_cond_signal = >() from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >(self=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:278
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = >symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked (t=3DInvalid = >C/C++ type code 26 in symbol table.
) at = >../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply (cl=3DInvalid= > C/C++ type code 26 in symbol table.
) at = >../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >(me=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
#14 0x000000080377ca6a in = >ThreadBase (param=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
#15 0x0000000804b3e4d1 in = >pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 in ?? = >()
(m3gdb)


Mika Nystrom writes:
type=3D"cite">Hello m3devel,
type=3D"cite">
I'm running = >into problems with the current release = >candidate.
I'm attaching a = >backtrace from one crash, but I think I also am = >seeing
deadlocks in the = >threading system---my application goes = >catatonic.
Of course it *is* = >possible it's a bug in my application, but it = >works
on PM3 and on CM3 on = >PPC_DARWIN.
type=3D"cite">
Finally I'm = >still concerned about threading performance but in the = >light
of the bugs it's hard to = >say much about it yet, I think...
type=3D"cite">
(The program in = >question is a highly multithreaded stock = >market
type=3D"cite">simulator.)
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">***
*** runtime = >error:
*** = >   <*ASSERT*> failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, Aborted.
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) show = >args
Argument list to give = >program being debugged when it is started is "@M3debugtrace=3Dmktsim.out = >-tz America/New_York -bugbehavior None -symbology ric -symbology = >tws
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 = >-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 = >-dp 0.30
7013 -sync 60 = >-unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >isolate90.src".
(m3gdb) = >where
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in symbol table.
) = >at ../src/runtime/common/RTProcess.m3:65
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code 36 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTError.m3:118
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in symbol table.
) = >at ../src/runtime/common/RTError.m3:40
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:79
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:39
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:47
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type code 35 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTHooks.m3:110
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 in symbol table.
type=3D"cite">)
 from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
ockquote type=3D"cite">#15 0x000000080377d1bc in Fork (closure=3DInvalid = >C/C++ type code 26 in symbol table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type = >code 26 in symbol table.
) at = >../src/MktPlace.m3:116
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at = >../src/MktIsolator.m3:514
#18 = >0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in symbol = >table.
) at = >../src/Main.m3:734
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 in = >symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
#22 0x0000000000404194 = >in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) at = >_m3main.mc:4
#23 = >0x00000000004040de in _start ()
type=3D"cite">(m3gdb) up 15
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >   at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">589         WITH r = >=3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >END;
Current language: = > auto; currently Modula-3
type=3D"cite">(m3gdb) print r
$1= > =3D 11
(m3gdb) = >

type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">

= > >--Apple-Mail-21--467118296-- From mika at async.async.caltech.edu Sat Oct 31 19:54:01 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:54:01 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> Message-ID: <20091031185401.0E3761A209C@async.async.caltech.edu> Argh this is my first experience with FreeBSD 7. I thought this was all simple and clear by now. PTHREAD(3) FreeBSD Library Functions Manual PTHREAD(3) NAME pthread -- POSIX thread functions LIBRARY POSIX Threads Library (libpthread, -lpthread) SYNOPSIS #include DESCRIPTION POSIX threads are a set of functions that support applications with requirements for multiple flows of control, called threads, within a process. Multithreading is used to improve the performance of a program. The POSIX thread functions are summarized in this section in the follow- ing groups: o Thread Routines o Attribute Object Routines o Mutex Routines o Condition Variable Routines o Read/Write Lock Routines o Per-Thread Context Routines o Cleanup Routines Thread Routines int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) Creates a new thread of execution. int pthread_cancel(pthread_t thread) ... IMPLEMENTATION NOTES The current FreeBSD POSIX thread implementation is built in two libraries, 1:1 Threading Library (libthr, -lthr), and N:M Threading Library (libkse, -lkse). They contain both thread-safe versions of Standard C Library (libc, -lc) functions and the thread functions. Threaded applications are linked with one of these libraries. SEE ALSO pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_condattr_destroy(3), pthread_condattr_init(3), pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_timedwait(3), pthread_cond_wait(3), pthread_create(3), pthread_detach(3), pthread_equal(3), pthread_exit(3), pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), pthread_kill(3), pthread_mutexattr_destroy(3), pthread_mutexattr_getprioceiling(3), pthread_mutexattr_getprotocol(3), pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), pthread_mutexattr_setprioceiling(3), pthread_mutexattr_setprotocol(3), pthread_mutexattr_settype(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3), pthread_once(3), pthread_rwlockattr_destroy(3), pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), pthread_rwlock_init(3), pthread_rwlock_rdlock(3), pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), pthread_self(3), pthread_setcancelstate(3), pthread_setcanceltype(3), pthread_setspecific(3), pthread_testcancel(3) STANDARDS The functions with the pthread_ prefix and not _np suffix or pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX.1''). The functions with the pthread_ prefix and _np suffix are non-portable extensions to POSIX threads. The functions with the pthread_rwlock prefix are extensions created by The Open Group as part of the Version 2 of the Single UNIX Specification (``SUSv2''). FreeBSD 7.2 October 19, 2007 FreeBSD 7.2 > >Do you know which one -lpthread gives you on FreeBSD? > > >On 31 Oct 2009, at 14:26, Mika Nystrom wrote: > >> Let's see here we go: >> >> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >> >> -> linking mktisolator >> generate _m3main.new >> compare _m3main.new _m3main.mc >> rm _m3main.new >> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/ >> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/ >> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >> AMD64_FREEBSD -L/usr/local/c >> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/ >> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme- >> lib/AMD64_FREE >> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,- >> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/ >> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching - >> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >> rm m3make.args >> cd . >> >> >> Tony Hosking writes: >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Which pthread library are you linking to? >>> >>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>> >>>> >>>> More details about the "catatonic" case. It's pretty bad. Even >>>> ctrl-\ >>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>> program to >>>> abort and dump core. It does nothing to my program now! And I >>>> think >>>> I've "lost threads" before, too. >>>> >>>> Btw, >>>> >>>> (90)ginger:~/t>uname -a >>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>> src/ >>>> sys/GENERIC amd64 >>>> >>>> I'm happy to help debug if someone can give me some pointers... >>>> >>>> >>>> Mika >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) cont >>>> Continuing. >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** aborted >>>> >>>> >>>> >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) where >>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >>>> 28 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>> #4 >>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>> libthr.so.3 >>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:217 >>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:152 >>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>> in symbol table. >>>> ) at ../src/MktAsset.m3:117 >>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/MktPlace.m3:469 >>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>> in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >>>> 35 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>> #16 0x0000000000000000 in ?? () >>>> (m3gdb) >>>> >>>> >>>> Mika Nystrom writes: >>>>> Hello m3devel, >>>>> >>>>> I'm running into problems with the current release candidate. >>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>> seeing >>>>> deadlocks in the threading system---my application goes catatonic. >>>>> Of course it *is* possible it's a bug in my application, but it >>>>> works >>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>> >>>>> Finally I'm still concerned about threading performance but in the >>>>> light >>>>> of the bugs it's hard to say much about it yet, I think... >>>>> >>>>> (The program in question is a highly multithreaded stock market >>>>> simulator.) >>>>> >>>>> Mika >>>>> >>>>> ============================================================ >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) show args >>>>> Argument list to give program being debugged when it is started is >>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>>>> symbology ric -symbology tws >>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>> isolate90.src". >>>>> (m3gdb) where >>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>> RTOS.m3:20 >>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>> 36 in symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>> code 35 in symbol table. >>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>>>> in symbol table. >>>>> ) >>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:116 >>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktIsolator.m3:514 >>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>>>> symbol table. >>>>> ) at ../src/Main.m3:734 >>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>> ---Type to continue, or q to quit--- >>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>> #23 0x00000000004040de in _start () >>>>> (m3gdb) up 15 >>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>>>> END; >>>>> Current language: auto; currently Modula-3 >>>>> (m3gdb) print r >>>>> $1 = 11 >>>>> (m3gdb) >>>>> >>>>> ============================================================ >>>>> >>>>> >>> >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">Which pthread library are >>> you = >>> linking to?
>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 12:15, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">

More details about the "catatonic" case. = >>>  It's pretty bad.  Even ctrl-\
won't wake it up >>> properly. = >>>  Ctrl-\ is supposed to cause the program to
abort and dump >>> core. = >>>  It does nothing to my program now!  And I think
I've >>> "lost = >>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>  1 = >>> 07:18:07 UTC 2009     >> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>> = >>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>> help = >>> debug if someone can give me some pointers...


= >>>     Mika

^\
Program received signal = >>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >>> runtime error:
*** = >>>    aborted




^\
Program received = >>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>> in = >>> ThreadPThread__sigsuspend ()
   at = >>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>> code = >>> 28 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >>> handler called>
#5  0x0000000804b4829c in __error () >>> from = >>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>> pthread_cond_signal = >>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>> symbol table.
) at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:278
#9 = >>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>> in = >>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>> Wait = >>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>> (t=3DInvalid = >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>> (cl=3DInvalid= >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>> 0x000000080377ca6a in = >>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>> table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>> 0x0000000804b3e4d1 in = >>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>> in ?? = >>> ()
(m3gdb)


Mika Nystrom writes:
>> type=3D"cite">Hello m3devel,
>> type=3D"cite">
I'm >>> running = >>> into problems with the current release = >>> candidate.
I'm attaching >>> a = >>> backtrace from one crash, but I think I also am = >>> seeing
deadlocks in the = >>> threading system---my application goes = >>> catatonic.
Of course it >>> *is* = >>> possible it's a bug in my application, but it = >>> works
on PM3 and on CM3 >>> on = >>> PPC_DARWIN.
>> type=3D"cite">
Finally >>> I'm = >>> still concerned about threading performance but in the = >>> light
of the bugs it's >>> hard to = >>> say much about it yet, I think...
>> type=3D"cite">
(The >>> program in = >>> question is a highly multithreaded stock = >>> market
>> type=3D"cite">simulator.)
>> type=3D"cite">
= >>>    Mika
>> type=3D"cite">
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">***
*** >>> runtime = >>> error:
*** = >>>    <*ASSERT*> failed.
>> blockquote>
>> type=3D"cite">***    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
>> type=3D"cite">***
>> type=3D"cite">
>> type=3D"cite">
Program = >>> received signal SIGABRT, Aborted.
>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb) >>> show = >>> args
Argument list to >>> give = >>> program being debugged when it is started is >>> "@M3debugtrace=3Dmktsim.out = >>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>> tws
-replay = >>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>> 7001 = >>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>> 7011 = >>> -dp 0.30
7013 -sync 60 = >>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>> isolate90.src".
(m3gdb) = >>> where
#0 = >>>  0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
#1 = >>>  0x0000000804d2ef8b in abort () from = >>> /lib/libc.so.7
#2 = >>>  0x0000000803777bf7 in Crash () at = >>> ../src/runtime/POSIX/RTOS.m3:20
>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >>> C++ = >>> type code 26 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTProcess.m3:65
>> blockquote>
>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>> (crash=3DInvalid = >>> C/C++ type code 36 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTError.m3:118
>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >>> C++ = >>> type code 35 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTError.m3:40
>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >>> + = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTException.m3:79
>> blockquote>
>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:39
>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >>> C++ = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>> blockquote>
>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:47
>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>> type = >>> code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/ex_frame/RTExFrame.m3:29
>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>> (module=3DInvalid = >>> C/C++ type code 35 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTHooks.m3:110
>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >>> ++ = >>> type code 39 in symbol table.
>> type=3D"cite">)
>>>  from = >>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>> blockquote>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>> (closure=3DInvalid = >>> C/C++ type code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>> type = >>> code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/MktPlace.m3:116
>> type=3D"cite">#17 = >>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>> symbol = >>> table.
) at = >>> ../src/MktIsolator.m3:514
>> type=3D"cite">#18 = >>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>> symbol = >>> table.
) at = >>> ../src/Main.m3:734
#19 = >>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>> in = >>> symbol table.
) at = >>> ../src/runtime/common/RTLinker.m3:400
>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>> type = >>> code 29 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:114
>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>> type = >>> code 31 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:123
>> type=3D"cite">---Type <return> to continue, or q >>> <return> to = >>> quit---
#22 >>> 0x0000000000404194 = >>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>> at = >>> _m3main.mc:4
#23 = >>> 0x00000000004040de in _start ()
>> type=3D"cite">(m3gdb) up 15
>> type=3D"cite">#15 = >>> 0x000000080377d1bc in Fork = >>> (closure=3D16_00000008064c8930)
>> type=3D"cite">= >>>   at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">589 >>>         WITH r = >>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>> END;
Current language: = >>>  auto; currently Modula-3
>> type=3D"cite">(m3gdb) print r
>> type=3D"cite">$1= >>> =3D 11
(m3gdb) = >>>

>> blockquote>
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">

>> body>= >>> >>> --Apple-Mail-21--467118296-- > > >--Apple-Mail-24--465395183 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Do you know which one -lpthread = >gives you on FreeBSD?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>

On 31 Oct = >2009, at 14:26, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Let's = >see here we go:

= >       libc.so.7 =3D> = >/lib/libc.so.7 (0x804c4e000)

-> linking = >mktisolator
generate _m3main.new
compare _m3main.new = >_m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z origin = >-Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN = >-Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o MktIsolator.io = >MktIsolator.mo Main.mo = >-Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >-Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >-L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >-Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >-L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >-Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >-Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >-Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >-L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >-Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >-L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >-Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >m3/pkg/ui/AMD64_FREEBSD -lm3ui = >-Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >-Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >-L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >-Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >-Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >-Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >-Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >-Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >-L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >-Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >-L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >-Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >-L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >-Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >-L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >-Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >-L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >-Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >-L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >-Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >-L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >-Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >mika/t/cit_util/AMD64_FREEBSD -lcit_util = >-Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >-Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >-L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >-Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >-L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >-Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >-Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >-Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching = >-Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >-Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >-Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >-lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >m3make.args
cd .


Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Which pthread = >library are you linking to?
type=3D"cite">
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">
type=3D"cite">
More details about the = >"catatonic" case.  It's pretty bad.  Even = > 
type=3D"cite">ctrl-\
type=3D"cite">
won't wake it up properly. = > Ctrl-\ is supposed to cause the program = >to
type=3D"cite">abort and dump core.  It does nothing to my program = >now!  And I think
type=3D"cite">
I've "lost threads" before, = >too.
type=3D"cite">
type=3D"cite">
type=3D"cite">Btw,
type=3D"cite">
type=3D"cite">
type=3D"cite">
(90)ginger:~/t>uname = >-a
type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May = > 1  
type=3D"cite">
07:18:07 UTC 2009 = >    href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/
type=3D"cite">
sys/GENERIC = > amd64
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm happy to help debug if = >someone can give me some = >pointers...
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >cont
type=3D"cite">Continuing.
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">*** = >   aborted
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >where
type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
#1  0x0000000804b41d0a in = >sigsuspend () from = >/lib/libthr.so.3
type=3D"cite">
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
type=3D"cite">
  at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
lockquote type=3D"cite">
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = > 
type=3D"cite">28 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
<= >blockquote type=3D"cite">
#4  <signal = >handler called>
type=3D"cite">
#5  0x0000000804b4829c in = >__error () from = >/lib/libthr.so.3
type=3D"cite">
#6  0x0000000804b46365 in = >pthread_cond_signal () from = >/lib/libthr.so.3
type=3D"cite">
#7  0x000000080377a85d in = >XWait (self=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
lockquote type=3D"cite">
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:278
lockquote type=3D"cite">
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:217
type=3D"cite">
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:152
type=3D"cite">
#11 0x00000008011ae748 in = >WaitLocked (t=3DInvalid C/C++ type code 26 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/MktAsset.m3:117
type=3D"cite">
#12 0x00000008011b4950 in = >RecApply (cl=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/MktPlace.m3:469
type=3D"cite">
#13 0x000000080377cdf3 in = >RunThread (me=3DInvalid C/C++ type code 29 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
lockquote type=3D"cite">
#14 0x000000080377ca6a = >in ThreadBase (param=3DInvalid C/C++ type code = > 
type=3D"cite">35 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
lockquote type=3D"cite">
#15 0x0000000804b3e4d1 = >in pthread_getprio () from = >/lib/libthr.so.3
type=3D"cite">
#16 0x0000000000000000 in ?? = >()
type=3D"cite">(m3gdb)
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Mika Nystrom = >writes:
type=3D"cite">
Hello = >m3devel,
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm = >running into problems with the current release = >candidate.
type=3D"cite">
I'm = >attaching a backtrace from one crash, but I think I also am = > 
type=3D"cite">
type=3D"cite">seeing
type=3D"cite">
type=3D"cite">deadlocks in the threading system---my application goes = >catatonic.
type=3D"cite">
Of = >course it *is* possible it's a bug in my application, but it = >works
type=3D"cite">
on PM3 = >and on CM3 on = >PPC_DARWIN.
type=3D"cite">
type=3D"cite">
type=3D"cite">
Finally = >I'm still concerned about threading performance but in the = > 
type=3D"cite">
type=3D"cite">light
type=3D"cite">
of the = >bugs it's hard to say much about it yet, I = >think...
type=3D"cite">
type=3D"cite">
type=3D"cite">
(The = >program in question is a highly multithreaded stock = >market
type=3D"cite">
type=3D"cite">simulator.)
quote type=3D"cite">
type=3D"cite">
type=3D"cite">
= >  Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** = >runtime error:
type=3D"cite">
*** = >   <*ASSERT*> = >failed.
type=3D"cite">
*** = >   file "../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, = >Aborted.
type=3D"cite">
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >show args
type=3D"cite">
Argument= > list to give program being debugged when it is started is = > 
type=3D"cite">
type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >-bugbehavior None - = >
type=3D"cite">
type=3D"cite">symbology ric -symbology = >tws
type=3D"cite">
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to = > 
type=3D"cite">
type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 = >-dp 0.15  
type=3D"cite">
7007 = >-dp 0.20 7009 -dp 0.25 7011 -dp = >0.30
type=3D"cite">
7013 = >-sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = > 
type=3D"cite">
type=3D"cite">isolate90.src".
lockquote type=3D"cite">
type=3D"cite">(m3gdb) = >where
type=3D"cite">
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
type=3D"cite">
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
= >
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTProcess.m3:65
quote>
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code = > 
type=3D"cite">
36 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:118
uote>
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:40
ote>
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:79
ckquote>
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:39
ckquote>
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:47
ckquote>
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type  
type=3D"cite">
code = >35 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTHooks.m3:110
uote>
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
type=3D"cite">)
type=3D"cite">
from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
lockquote>
type=3D"cite">
#15 0x000000080377d1bc in Fork = >(closure=3DInvalid C/C++ type code 26 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktPlace.m3:116
te type=3D"cite">
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktIsolator.m3:514
quote type=3D"cite">
type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ type = >code 39 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/Main.m3:734
type=3D"cite">
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:400
quote>
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:114
quote>
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:123
quote>
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
type=3D"cite">
#22 = >0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = > 
type=3D"cite">
type=3D"cite">envp=3D0x7fffffffdf50) at = >_m3main.mc:4
type=3D"cite">
#23 = >0x00000000004040de in _start = >()
type=3D"cite">
(m3gdb) = >up 15
type=3D"cite">
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >
type=3D"cite">  at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">589         WITH = >r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = > 
type=3D"cite">
type=3D"cite">END;
type=3D"cite">
Current = >language:  auto; currently = >Modula-3
type=3D"cite">
(m3gdb) = >print r
type=3D"cite">
$1 =3D = >11
type=3D"cite">
type=3D"cite">(m3gdb)
e type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; ">Which pthread = >library are you =3D
linking = >to?<br><div apple-content-edited=3D3D"true"> <span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; color: = >=3D
rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: =3D
type=3D"cite">normal; font-variant: normal; font-weight: normal; = >letter-spacing: =3D
normal; = >line-height: normal; orphans: 2; text-align: auto; text-indent: = >=3D
0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: = >=3D
0px; = >-webkit-border-horizontal-spacing: 0px; =3D
type=3D"cite">-webkit-border-vertical-spacing: 0px; = >=3D
type=3D"cite">-webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 12:15, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><div><br>More details about = >the "catatonic" case. =3D
type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >ctrl-\<br>won't wake it up properly. =3D
type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >to<br>abort and dump core. =3D
type=3D"cite">&nbsp;It does nothing to my program now! &nbsp;And = >I think<br>I've "lost =3D
type=3D"cite">threads" before, = >too.<br><br>Btw,<br><br>(90)ginger:~/t&gt;unam= >e =3D
-a<br>FreeBSD = >ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >=3D
07:18:07 UTC 2009 = >&nbsp;&nbsp;&nbsp;&nbsp;<a = >=3D
href=3D3D"href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >falo.edu">href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed<= >/a>=3D
type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >&nbsp;amd64<br><br>I'm happy to help = >=3D
debug if someone can give = >me some pointers...<br><br><br> = >=3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >>^\<br>Program received signal =3D
type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in sigsuspend = >() from =3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >cont<br>Continuing.<br><br><br>***<br>*** = >=3D
runtime = >error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >;br><br><br>^\<br>Program received = >=3D
signal SIGQUIT, = >Quit.<br>0x0000000804ca037c in sigsuspend () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >&nbsp;0x0000000804ca037c in =3D
type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >&nbsp;0x0000000804b41d0a in =3D
type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >&nbsp;0x0000000803780da0 in =3D
type=3D"cite">ThreadPThread__sigsuspend ()<br> = >&nbsp;&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c:117<br>#3 = >=3D
&nbsp;0x000000080377ff6f= > in SignalHandler (sig=3D3DInvalid C/C++ type code = >=3D
28 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:1261<br>#4 = >&nbsp;&lt;signal =3D
type=3D"cite">handler called&gt;<br>#5 = >&nbsp;0x0000000804b4829c in __error () from = >=3D
/lib/libthr.so.3<br>#6= > &nbsp;0x0000000804b46365 in pthread_cond_signal = >=3D
() from = >/lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >=3D
(self=3D3DInvalid C/C++ = >type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:227<br>#8 = >=3D
&nbsp;0x000000080377b026= > in Wait (m=3D3DInvalid C/C++ type code 26 in = >=3D
symbol table.<br>) = >at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >=3D
&nbsp;0x000000080294a39c= > in WaitE (on=3D3DInvalid C/C++ type code 30 in = >=3D
symbol table.<br>) = >at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >=3D
(on=3D3DInvalid C/C++ type = >code 30 in symbol table.<br>) at =3D
type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >WaitLocked (t=3D3DInvalid =3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktAsset.m3:117<br>#12 0x00000008011b4950 in = >RecApply (cl=3D3DInvalid=3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktPlace.m3:469<br>#13 0x000000080377cdf3 in = >RunThread =3D
(me=3D3DInvalid = >C/C++ type code 29 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:547<br>#14 = >0x000000080377ca6a in =3D
type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:523<br>#15 = >0x0000000804b3e4d1 in =3D
type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >0x0000000000000000 in ?? =3D
type=3D"cite">()<br>(m3gdb) <br><br><br>Mika = >Nystrom writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite">Hello = >m3devel,<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">I'm running =3D
type=3D"cite">into problems with the current release = >=3D
type=3D"cite">candidate.<br></blockquote><blockquote = >type=3D3D"cite">I'm attaching a =3D
type=3D"cite">backtrace from one crash, but I think I also am = >=3D
type=3D"cite">seeing<br></blockquote><blockquote = >type=3D3D"cite">deadlocks in the =3D
type=3D"cite">threading system---my application goes = >=3D
type=3D"cite">catatonic.<br></blockquote><blockquote = >type=3D3D"cite">Of course it *is* =3D
type=3D"cite">possible it's a bug in my application, but it = >=3D
type=3D"cite">works<br></blockquote><blockquote = >type=3D3D"cite">on PM3 and on CM3 on =3D
type=3D"cite">PPC_DARWIN.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Finally I'm =3D
type=3D"cite">still concerned about threading performance but in the = >=3D
type=3D"cite">light<br></blockquote><blockquote = >type=3D3D"cite">of the bugs it's hard to = >=3D
say much about it yet, I = >think...<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">(The program in =3D
type=3D"cite">question is a highly multithreaded stock = >=3D
type=3D"cite">market<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">simulator.)<br></blockquote>&= >lt;blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite"> =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></blockquote&= >gt;<blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote type=3D3D"cite">*** runtime =3D
type=3D"cite">error:<br></blockquote><blockquote = >type=3D3D"cite">*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br></blockquote><blockquote = >=3D
type=3D3D"cite">*** = >&nbsp;&nbsp;&nbsp;file =3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Program =3D
type=3D"cite">received signal SIGABRT, = >Aborted.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) show =3D
type=3D"cite">args<br></blockquote><blockquote = >type=3D3D"cite">Argument list to give =3D
type=3D"cite">program being debugged when it is started is = >"@M3debugtrace=3D3Dmktsim.out =3D
type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >-symbology =3D
type=3D"cite">tws<br></blockquote><blockquote = >type=3D3D"cite">-replay =3D
type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >2009-09-10 at 15:59 -port 7001 =3D
type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 = >-dp 0.25 7011 =3D
-dp 0.30 = ><br></blockquote><blockquote type=3D3D"cite">7013 = >-sync 60 =3D
-unsolicitedfills = >0.5 -cp 0.5 -xtimeport 7200 =3D
type=3D"cite">isolate90.src".<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) =3D
type=3D"cite">where<br></blockquote><blockquote = >type=3D3D"cite">#0 =3D
type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#1 =3D
type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#2 =3D
type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >=3D
type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></blockquote>= ><blockquote =3D
type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >Crash (msg=3D3DInvalid C/C++ =3D
type=3D"cite">type code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTProcess.m3:65<br></blockquote><bloc= >kquote =3D
type=3D3D"cite">#4= > &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >=3D
C/C++ type code 36 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTError.m3:118<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in MsgS = >(file=3D3DInvalid C/C++ =3D
type= > code 35 in symbol table.<br></blockquote><blockquote = >type=3D3D"cite">) =3D
at = >../src/runtime/common/RTError.m3:40<br></blockquote><blockq= >uote =3D
type=3D3D"cite">#6 = >&nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >=3D
type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTException.m3:79<br></blockquote><bl= >ockquote =3D
type=3D3D"cite">= >#7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >=3D
C/C++ type code 30 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:39<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >Raise (act=3D3DInvalid C/C++ =3D
type=3D"cite">type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/ex_frame/RTExFrame.m3:29<br></blockquote><bl= >ockquote =3D
type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >DefaultBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:47<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >(act=3D3DInvalid C/C++ type =3D
type=3D"cite">code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in ReportFault = >(module=3D3DInvalid =3D
C/C++ = >type code 35 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in _m3_fault = >(arg=3D3DInvalid C/C++ =3D
type = >code 39 in symbol table.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">)<br></blockquote><blockqu= >ote type=3D3D"cite"> &nbsp;from =3D
type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5<br= >></blockquote><bl=3D
type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in Fork = >(closure=3D3DInvalid =3D
C/C++ = >type code 26 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >(t=3D3DInvalid C/C++ type =3D
type=3D"cite">code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/MktPlace.m3:116<br></blockquote><block= >quote type=3D3D"cite">#17 =3D
type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type code = >26 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/MktIsolator.m3:514<br></blockquote><bl= >ockquote type=3D3D"cite">#18 =3D
type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ type = >code 39 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/Main.m3:734<br></blockquote><blockquot= >e type=3D3D"cite">#19 =3D
type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C++ = >type code 29 in =3D
symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >(m=3D3DInvalid C/C++ type =3D
type=3D"cite">code 29 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >(b=3D3DInvalid C/C++ type =3D
type=3D"cite">code 31 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >continue, or q &lt;return&gt; to =3D
type=3D"cite">quit---<br></blockquote><blockquote = >type=3D3D"cite">#22 0x0000000000404194 =3D
type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >envp=3D3D0x7fffffffdf50) at =3D
type=3D"cite">_m3main.mc:4<br></blockquote><blockquote = >type=3D3D"cite">#23 =3D
type=3D"cite">0x00000000004040de in _start = >()<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >up 15<br></blockquote><blockquote type=3D3D"cite">#15 = >=3D
0x000000080377d1bc in Fork = >=3D
type=3D"cite">(closure=3D3D16_00000008064c8930)<br></blockquote&g= >t;<blockquote type=3D3D"cite">=3D
type=3D"cite">&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">589 = >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >;nbsp;WITH r =3D
=3D3D = >pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >=3D
type=3D"cite">END;<br></blockquote><blockquote = >type=3D3D"cite">Current language: =3D
type=3D"cite">&nbsp;auto; currently = >Modula-3<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >print r<br></blockquote><blockquote = >type=3D3D"cite">$1=3D
=3D3D = >11<br></blockquote><blockquote type=3D3D"cite">(m3gdb) = >=3D
type=3D"cite"><br></blockquote><blockquote = >type=3D3D"cite"><br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote></div>= ></blockquote></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-21--467118296--
ote>

= > >--Apple-Mail-24--465395183-- From hosking at cs.purdue.edu Sat Oct 31 19:59:19 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:59:19 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031185401.0E3761A209C@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: Can you try linking with -lthr? 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 31 Oct 2009, at 14:54, Mika Nystrom wrote: > Argh this is my first experience with FreeBSD 7. I thought this was > all simple and clear by now. > > PTHREAD(3) FreeBSD Library Functions Manual > PTHREAD(3) > > NAME > pthread -- POSIX thread functions > > LIBRARY > POSIX Threads Library (libpthread, -lpthread) > > SYNOPSIS > #include > > DESCRIPTION > POSIX threads are a set of functions that support applications > with > requirements for multiple flows of control, called threads, > within a > process. Multithreading is used to improve the performance of a > program. > > The POSIX thread functions are summarized in this section in the > follow- > ing groups: > > o Thread Routines > o Attribute Object Routines > o Mutex Routines > o Condition Variable Routines > o Read/Write Lock Routines > o Per-Thread Context Routines > o Cleanup Routines > > Thread Routines > int pthread_create(pthread_t *thread, const pthread_attr_t *attr, > void *(*start_routine)(void *), void *arg) > Creates a new thread of execution. > > int pthread_cancel(pthread_t thread) > ... > > IMPLEMENTATION NOTES > The current FreeBSD POSIX thread implementation is built in two > libraries, 1:1 Threading Library (libthr, -lthr), and N:M > Threading > Library (libkse, -lkse). They contain both thread-safe versions > of > Standard C Library (libc, -lc) functions and the thread functions. > Threaded applications are linked with one of these libraries. > > SEE ALSO > pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), > pthread_cleanup_push(3), pthread_condattr_destroy(3), > pthread_condattr_init(3), pthread_cond_broadcast(3), > pthread_cond_destroy(3), pthread_cond_init(3), > pthread_cond_signal(3), > pthread_cond_timedwait(3), pthread_cond_wait(3), > pthread_create(3), > pthread_detach(3), pthread_equal(3), pthread_exit(3), > pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), > pthread_kill(3), pthread_mutexattr_destroy(3), > pthread_mutexattr_getprioceiling(3), > pthread_mutexattr_getprotocol(3), > pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), > pthread_mutexattr_setprioceiling(3), > pthread_mutexattr_setprotocol(3), > pthread_mutexattr_settype(3), pthread_mutex_destroy(3), > pthread_mutex_init(3), pthread_mutex_lock(3), > pthread_mutex_trylock(3), > pthread_mutex_unlock(3), pthread_once(3), > pthread_rwlockattr_destroy(3), > pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), > pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), > pthread_rwlock_init(3), pthread_rwlock_rdlock(3), > pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), > pthread_self(3), > pthread_setcancelstate(3), pthread_setcanceltype(3), > pthread_setspecific(3), pthread_testcancel(3) > > STANDARDS > The functions with the pthread_ prefix and not _np suffix or > pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX. > 1''). > > The functions with the pthread_ prefix and _np suffix are non- > portable > extensions to POSIX threads. > > The functions with the pthread_rwlock prefix are extensions > created by > The Open Group as part of the Version 2 of the Single UNIX > Specification > (``SUSv2''). > > FreeBSD 7.2 October 19, 2007 > FreeBSD 7.2 > > >> >> Do you know which one -lpthread gives you on FreeBSD? >> >> >> On 31 Oct 2009, at 14:26, Mika Nystrom wrote: >> >>> Let's see here we go: >>> >>> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >>> >>> -> linking mktisolator >>> generate _m3main.new >>> compare _m3main.new _m3main.mc >>> rm _m3main.new >>> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >>> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >>> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >>> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/ >>> modula3scheme/ >>> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >>> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >>> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >>> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >>> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >>> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >>> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >>> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/ >>> mika/ >>> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >>> AMD64_FREEBSD -L/usr/local/c >>> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >>> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >>> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >>> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/ >>> mika/ >>> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >>> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >>> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >>> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >>> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >>> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >>> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/ >>> scheme- >>> lib/AMD64_FREE >>> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >>> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >>> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >>> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova - >>> Wl,- >>> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/ >>> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >>> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >>> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >>> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >>> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >>> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >>> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >>> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >>> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >>> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >>> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >>> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >>> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >>> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >>> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/ >>> AMD64_FREEBSD - >>> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >>> lpatternmatching - >>> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >>> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >>> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >>> rm m3make.args >>> cd . >>> >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Which pthread library are you linking to? >>>> >>>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>>> >>>>> >>>>> More details about the "catatonic" case. It's pretty bad. Even >>>>> ctrl-\ >>>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>>> program to >>>>> abort and dump core. It does nothing to my program now! And I >>>>> think >>>>> I've "lost threads" before, too. >>>>> >>>>> Btw, >>>>> >>>>> (90)ginger:~/t>uname -a >>>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>>> src/ >>>>> sys/GENERIC amd64 >>>>> >>>>> I'm happy to help debug if someone can give me some pointers... >>>>> >>>>> >>>>> Mika >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) cont >>>>> Continuing. >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** aborted >>>>> >>>>> >>>>> >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) where >>>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type >>>>> code >>>>> 28 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>>> #4 >>>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>>> libthr.so.3 >>>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 >>>>> in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:217 >>>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:152 >>>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/MktAsset.m3:117 >>>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code >>>>> 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:469 >>>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type >>>>> code >>>>> 35 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>>> #16 0x0000000000000000 in ?? () >>>>> (m3gdb) >>>>> >>>>> >>>>> Mika Nystrom writes: >>>>>> Hello m3devel, >>>>>> >>>>>> I'm running into problems with the current release candidate. >>>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>>> seeing >>>>>> deadlocks in the threading system---my application goes >>>>>> catatonic. >>>>>> Of course it *is* possible it's a bug in my application, but it >>>>>> works >>>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>>> >>>>>> Finally I'm still concerned about threading performance but in >>>>>> the >>>>>> light >>>>>> of the bugs it's hard to say much about it yet, I think... >>>>>> >>>>>> (The program in question is a highly multithreaded stock market >>>>>> simulator.) >>>>>> >>>>>> Mika >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> *** >>>>>> *** runtime error: >>>>>> *** <*ASSERT*> failed. >>>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>>> *** >>>>>> >>>>>> >>>>>> Program received signal SIGABRT, Aborted. >>>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> (m3gdb) show args >>>>>> Argument list to give program being debugged when it is started >>>>>> is >>>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior >>>>>> None - >>>>>> symbology ric -symbology tws >>>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>>> isolate90.src". >>>>>> (m3gdb) where >>>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>>> RTOS.m3:20 >>>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>>> 36 in symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>>> code 35 in symbol table. >>>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type >>>>>> code 39 >>>>>> in symbol table. >>>>>> ) >>>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code >>>>>> 26 >>>>>> in symbol table. >>>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code >>>>>> 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktPlace.m3:116 >>>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktIsolator.m3:514 >>>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/Main.m3:734 >>>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type >>>>>> code 29 >>>>>> in symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code >>>>>> 29 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>>> ---Type to continue, or q to quit--- >>>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>>> #23 0x00000000004040de in _start () >>>>>> (m3gdb) up 15 >>>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT >>>>>> r=0*> >>>>>> END; >>>>>> Current language: auto; currently Modula-3 >>>>>> (m3gdb) print r >>>>>> $1 = 11 >>>>>> (m3gdb) >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> >>>> >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">Which pthread library are >>>> you = >>>> linking to?
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 12:15, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">

More details about the "catatonic" case. = >>>>  It's pretty bad.  Even ctrl-\
won't wake it up >>>> properly. = >>>>  Ctrl-\ is supposed to cause the program to
abort and dump >>>> core. = >>>>  It does nothing to my program now!  And I think
I've >>>> "lost = >>>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>>  1 = >>>> 07:18:07 UTC 2009     
>>> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>>> = >>>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>>> help = >>>> debug if someone can give me some pointers...


= >>>>     Mika

^\
Program received signal = >>>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) >>>> cont
Continuing.


***
*** = >>>> runtime error:
*** = >>>>    aborted




^\
Program >>>> received = >>>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a >>>> in = >>>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>>> in = >>>> ThreadPThread__sigsuspend ()
   at = >>>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>>> code = >>>> 28 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4 >>>>  <signal = >>>> handler called>
#5  0x0000000804b4829c in __error () >>>> from = >>>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>>> pthread_cond_signal = >>>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 >>>> in = >>>> symbol table.
) at ../src/thread/PTHREAD/ >>>> ThreadPThread.m3:278
#9 = >>>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>>> in = >>>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>>> Wait = >>>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>>> (t=3DInvalid = >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>>> (cl=3DInvalid= >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>>> 0x000000080377ca6a in = >>>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>>> table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>>> 0x0000000804b3e4d1 in = >>>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>>> in ?? = >>>> ()
(m3gdb)


Mika Nystrom writes:
>>> type=3D"cite">Hello m3devel,
>>> type=3D"cite">
I'm >>>> running = >>>> into problems with the current release = >>>> candidate.
I'm attaching >>>> a = >>>> backtrace from one crash, but I think I also am = >>>> seeing
deadlocks in the = >>>> threading system---my application goes = >>>> catatonic.
Of course it >>>> *is* = >>>> possible it's a bug in my application, but it = >>>> works
on PM3 and on CM3 >>>> on = >>>> PPC_DARWIN.
>>> type=3D"cite">
Finally >>>> I'm = >>>> still concerned about threading performance but in the = >>>> light
of the bugs it's >>>> hard to = >>>> say much about it yet, I think...
>>> type=3D"cite">
(The >>>> program in = >>>> question is a highly multithreaded stock = >>>> market
>>> type=3D"cite">simulator.)
>>> type=3D"cite">
= >>>>    Mika
>>> type=3D"cite">
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">***
*** >>>> runtime = >>>> error:
*** = >>>>    <*ASSERT*> failed.
>>> blockquote>
>>> type=3D"cite">***    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
>>> type=3D"cite">***
>>> type=3D"cite">
>>> type=3D"cite">
Program = >>>> received signal SIGABRT, Aborted.
>>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb) >>>> show = >>>> args
Argument list to >>>> give = >>>> program being debugged when it is started is >>>> "@M3debugtrace=3Dmktsim.out = >>>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>>> tws
-replay = >>>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>>> 7001 = >>>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>>> 7011 = >>>> -dp 0.30
7013 -sync 60 = >>>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>>> isolate90.src".
(m3gdb) = >>>> where
#0 = >>>>  0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
#1 = >>>>  0x0000000804d2ef8b in abort () from = >>>> /lib/libc.so.7
#2 = >>>>  0x0000000803777bf7 in Crash () at = >>>> ../src/runtime/POSIX/RTOS.m3:20
>>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid >>>> C/ >>>> C++ = >>>> type code 26 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTProcess.m3:65
>>> blockquote>
>>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>>> (crash=3DInvalid = >>>> C/C++ type code 36 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTError.m3:118
>>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid >>>> C/ >>>> C++ = >>>> type code 35 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTError.m3:40
>>> blockquote>
>>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/ >>>> C+ >>>> + = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTException.m3:79
>>> blockquote>
>>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:39
>>> blockquote>
>>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid >>>> C/ >>>> C++ = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:47
>>> blockquote>
>>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>>> type = >>>> code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>>> (module=3DInvalid = >>>> C/C++ type code 35 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTHooks.m3:110
>>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid >>>> C/C >>>> ++ = >>>> type code 39 in symbol table.
>>> type=3D"cite">)
>>>>  from = >>>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>>> blockquote>>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>>> (closure=3DInvalid = >>>> C/C++ type code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>>> type = >>>> code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/MktPlace.m3:116
>>> type=3D"cite">#17 = >>>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>>> symbol = >>>> table.
) at = >>>> ../src/MktIsolator.m3:514
>>> type=3D"cite">#18 = >>>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>>> symbol = >>>> table.
) at = >>>> ../src/Main.m3:734
#19 = >>>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>>> in = >>>> symbol table.
) at = >>>> ../src/runtime/common/RTLinker.m3:400
>>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>>> type = >>>> code 29 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:114
>>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>>> type = >>>> code 31 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:123
>>> type=3D"cite">---Type <return> to continue, or q >>>> <return> to = >>>> quit---
#22 >>>> 0x0000000000404194 = >>>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>>> at = >>>> _m3main.mc:4
#23 = >>>> 0x00000000004040de in _start ()
>>> type=3D"cite">(m3gdb) up 15
>>> type=3D"cite">#15 = >>>> 0x000000080377d1bc in Fork = >>>> (closure=3D16_00000008064c8930)
>>> type=3D"cite">= >>>>   at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">589 >>>>         WITH r = >>>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>>> END;
Current language: = >>>>  auto; currently Modula-3
>>> type=3D"cite">(m3gdb) print r
>>> type=3D"cite">$1= >>>> =3D 11
(m3gdb) = >>>>

>>> blockquote>
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">

>>> body>= >>>> >>>> --Apple-Mail-21--467118296-- >> >> >> --Apple-Mail-24--465395183 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">Do you know which one - >> lpthread = >> gives you on FreeBSD?
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>

On 31 >> Oct = >> 2009, at 14:26, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Let's = >> see here we go:

= >>        libc.so.7 =3D> = >> /lib/libc.so.7 (0x804c4e000)

-> linking = >> mktisolator
generate _m3main.new
compare _m3main.new = >> _m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z >> origin = >> -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\ >> $ORIGIN = >> -Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o >> MktIsolator.io = >> MktIsolator.mo Main.mo = >> -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >> -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >> -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >> -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >> -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >> -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >> -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >> -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >> -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >> -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >> m3/pkg/ui/AMD64_FREEBSD -lm3ui = >> -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >> -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >> -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >> -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >> -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >> -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >> -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >> -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >> -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >> -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >> -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >> -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >> -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >> -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >> -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >> -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >> -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >> -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >> -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >> -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >> -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >> mika/t/cit_util/AMD64_FREEBSD -lcit_util = >> -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >> -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >> -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >> -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >> -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >> -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >> -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >> -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> lpatternmatching = >> -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >> -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >> -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >> -lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >> m3make.args
cd .


Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Which >> pthread = >> library are you linking to?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 12:15, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
More details about the = >> "catatonic" case.  It's pretty bad.  Even = >>  
> type=3D"cite">
> type=3D"cite">ctrl-\
> type=3D"cite">
won't wake it up properly. = >>  Ctrl-\ is supposed to cause the program = >> to
> type=3D"cite">
> type=3D"cite">abort and dump core.  It does nothing to my >> program = >> now!  And I think
> type=3D"cite">
I've "lost threads" before, = >> too.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Btw,
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
(90)ginger:~/t>uname = >> -a
> type=3D"cite">
> type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: >> Fri May = >>  1  
> type=3D"cite">
07:18:07 UTC 2009 = >>     > href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >> = >> u:/usr/obj/usr/src/
> type=3D"cite">
sys/GENERIC = >>  amd64
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
I'm happy to help debug if = >> someone can give me some = >> pointers...
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
= >>    Mika
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> cont
> type=3D"cite">
> type=3D"cite">Continuing.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">*** = >>    aborted
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
#1  0x0000000804b41d0a >> in = >> sigsuspend () from = >> /lib/libthr.so.3
> type=3D"cite">
#2  0x0000000803780da0 >> in = >> ThreadPThread__sigsuspend ()
> blockquote>
> type=3D"cite">
  at = >> ../src/thread/PTHREAD/ThreadPThreadC.c:117
> blockquote>> lockquote type=3D"cite">
#3 = >>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >> code = >>  
> type=3D"cite">
> type=3D"cite">28 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:1261
> blockquote><= >> blockquote type=3D"cite">
#4 >>  <signal = >> handler called>
> type=3D"cite">
#5  0x0000000804b4829c >> in = >> __error () from = >> /lib/libthr.so.3
> type=3D"cite">
#6  0x0000000804b46365 >> in = >> pthread_cond_signal () from = >> /lib/libthr.so.3
> type=3D"cite">
#7  0x000000080377a85d >> in = >> XWait (self=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:227
> blockquote>> lockquote type=3D"cite">
#8 = >>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:278
> blockquote>> lockquote type=3D"cite">
#9 = >>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >> in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:217
> type=3D"cite">
#10 0x000000080294999a in >> Wait = >> (on=3DInvalid C/C++ type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:152
> type=3D"cite">
#11 0x00000008011ae748 in = >> WaitLocked (t=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktAsset.m3:117
> type=3D"cite">
#12 0x00000008011b4950 in = >> RecApply (cl=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktPlace.m3:469
> type=3D"cite">
#13 0x000000080377cdf3 in = >> RunThread (me=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:547
> blockquote>> lockquote type=3D"cite">
#14 >> 0x000000080377ca6a = >> in ThreadBase (param=3DInvalid C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">35 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:523
> blockquote>> lockquote type=3D"cite">
#15 >> 0x0000000804b3e4d1 = >> in pthread_getprio () from = >> /lib/libthr.so.3
> type=3D"cite">
#16 0x0000000000000000 >> in ?? = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Mika Nystrom = >> writes:
> type=3D"cite">> type=3D"cite">
Hello = >> m3devel,
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">I'm = >> running into problems with the current release = >> candidate.
> type=3D"cite">
> type=3D"cite">I'm = >> attaching a backtrace from one crash, but I think I also am = >>  
> type=3D"cite">
> type=3D"cite">seeing
> blockquote>> type=3D"cite">
> type=3D"cite">deadlocks in the threading system---my application >> goes = >> catatonic.
> type=3D"cite">
> type=3D"cite">Of = >> course it *is* possible it's a bug in my application, but it = >> works
> type=3D"cite">
> type=3D"cite">on PM3 = >> and on CM3 on = >> PPC_DARWIN.
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Finally = >> I'm still concerned about threading performance but in the = >>  
> type=3D"cite">
> type=3D"cite">light
> blockquote>
> type=3D"cite">
> type=3D"cite">of the = >> bugs it's hard to say much about it yet, I = >> think...
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">(The = >> program in question is a highly multithreaded stock = >> market
> type=3D"cite">
> type=3D"cite">simulator.)
> blockquote>> quote type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
= >>   Mika
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >> runtime error:
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >>    <*ASSERT*> = >> failed.
> type=3D"cite">
> type=3D"cite">*** = >>    file "../src/thread/PTHREAD/ThreadPThread.m3", >> line = >> 589
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Program = >> received signal SIGABRT, = >> Aborted.
> type=3D"cite">
> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> show args
> type=3D"cite">
> type=3D"cite">Argument= >> list to give program being debugged when it is started is = >>  
> type=3D"cite">
> type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >> -bugbehavior None - = >>
> type=3D"cite">
> type=3D"cite">symbology ric -symbology = >> tws
> type=3D"cite">
- >> replay = >> mktisolator090910.ticks 2009-09-10 at 13:30 -to = >>  
> type=3D"cite">
> type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 >> 7005 = >> -dp 0.15  
> blockquote>
> type=3D"cite">
> type=3D"cite">7007 = >> -dp 0.20 7009 -dp 0.25 7011 -dp = >> 0.30
> type=3D"cite">
> type=3D"cite">7013 = >> -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>  
> type=3D"cite">
> type=3D"cite">isolate90.src".
> blockquote>> lockquote type=3D"cite">
> type=3D"cite">(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0 = >>  0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#1 = >>  0x0000000804d2ef8b in abort () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#2 = >>  0x0000000803777bf7 in Crash () at = >> ../src/runtime/POSIX/RTOS.m3:20
> blockquote>= >>
> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >> C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTProcess.m3:65
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#4  0x0000000803768ab2 in EndError >> (crash=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">36 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:118
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >> C++ = >> type code 35 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:40
> blockqu= >> ote>
> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >> + = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:79
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:39
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >> (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >> C++ = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:47
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >> type = >> code 30 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#13 0x0000000803750241 in ReportFault >> (module=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 35 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTHooks.m3:110
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >> ++ = >> type code 39 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
> type=3D"cite">)
> blockquote>
> type=3D"cite">
>> from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
> blockquote>> lockquote>
> type=3D"cite">
#15 0x000000080377d1bc in >> Fork = >> (closure=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktPlace.m3:116
> blockquote>> te type=3D"cite">
> type=3D"cite">#17 = >> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktIsolator.m3:514
> blockquote>> quote type=3D"cite">
> type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ >> type = >> code 39 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/Main.m3:734
> blockquote>
> type=3D"cite">
> type=3D"cite">#19 = >> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:400
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >> type = >> code 29 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:114
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >> type = >> code 31 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:123
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">---Type <return> to continue, or q >> <return> to = >> quit---
> type=3D"cite">
> type=3D"cite">#22 = >> 0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = >>  
> type=3D"cite">
> type=3D"cite">envp=3D0x7fffffffdf50) at = >> _m3main.mc:4
> type=3D"cite">
> type=3D"cite">#23 = >> 0x00000000004040de in _start = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> up 15
> type=3D"cite">
> type=3D"cite">#15 = >> 0x000000080377d1bc in Fork = >> (closure=3D16_00000008064c8930)
> blockquote>= >>
> type=3D"cite">  at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">589 >>         WITH = >> r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>  
> type=3D"cite">
> type=3D"cite">END;
> blockquote>
> type=3D"cite">
> type=3D"cite">Current = >> language:  auto; currently = >> Modula-3
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> print r
> type=3D"cite">
>> $1 =3D = >> 11
> type=3D"cite">
> type=3D"cite">(m3gdb)
> blockquote>> e type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; ">Which >> pthread = >> library are you =3D
> type=3D"cite">linking = >> to?<br><div apple-content-edited=3D3D"true"> <span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; color: = >> =3D
rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: =3D
> blockquote>
> type=3D"cite">normal; font-variant: normal; font-weight: normal; = >> letter-spacing: =3D
> type=3D"cite">normal; = >> line-height: normal; orphans: 2; text-align: auto; text-indent: = >> =3D
0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: = >> =3D
0px; = >> -webkit-border-horizontal-spacing: 0px; =3D
> blockquote>
> type=3D"cite">-webkit-border-vertical-spacing: 0px; = >> =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 12:15, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><div><br>More details >> about = >> the "catatonic" case. =3D
> type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >> ctrl-\<br>won't wake it up properly. =3D
> blockquote>> type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >> to<br>abort and dump core. =3D
> type=3D"cite">&nbsp;It does nothing to my program now! >> &nbsp;And = >> I think<br>I've "lost =3D
> type=3D"cite">threads" before, = >> too.<br><br>Btw,<br><br>(90)ginger:~/ >> t&gt;unam= >> e =3D
-a<br>FreeBSD = >> ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >> =3D
07:18:07 UTC 2009 = >> &nbsp;&nbsp;&nbsp;&nbsp;<a = >> =3D
href=3D3D"> href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >> falo.edu">> href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed >> <= >> /a>=3D
> type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >> &nbsp;amd64<br><br>I'm happy to help = >> =3D
debug if someone can >> give = >> me some pointers...<br><br><br> = >> =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >> >^\<br>Program received signal =3D
> blockquote>
> type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in >> sigsuspend = >> () from =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >> cont >> <br>Continuing.<br><br><br>***<br>*** = >> =3D
runtime = >> error:<br>*** =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >> ;br><br><br>^\<br>Program received = >> =3D
signal SIGQUIT, = >> Quit.<br>0x0000000804ca037c in sigsuspend () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >> &nbsp;0x0000000804ca037c in =3D
> type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >> &nbsp;0x0000000804b41d0a in =3D
> type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >> &nbsp;0x0000000803780da0 in =3D
> type=3D"cite">ThreadPThread__sigsuspend ()<br> = >> &nbsp;&nbsp;&nbsp;at =3D
> type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c: >> 117<br>#3 = >> =3D
&nbsp; >> 0x000000080377ff6f= >> in SignalHandler (sig=3D3DInvalid C/C++ type code = >> =3D
28 in symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:1261<br>#4 = >> &nbsp;&lt;signal =3D
> type=3D"cite">handler called&gt;<br>#5 = >> &nbsp;0x0000000804b4829c in __error () from = >> =3D
/lib/libthr.so. >> 3<br>#6= >> &nbsp;0x0000000804b46365 in pthread_cond_signal = >> =3D
() from = >> /lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >> =3D
(self=3D3DInvalid C/C+ >> + = >> type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:227<br>#8 = >> =3D
&nbsp; >> 0x000000080377b026= >> in Wait (m=3D3DInvalid C/C++ type code 26 in = >> =3D
symbol >> table.<br>) = >> at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >> =3D
&nbsp; >> 0x000000080294a39c= >> in WaitE (on=3D3DInvalid C/C++ type code 30 in = >> =3D
symbol >> table.<br>) = >> at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >> =3D
(on=3D3DInvalid C/C++ >> type = >> code 30 in symbol table.<br>) at =3D
> blockquote>
> type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >> WaitLocked (t=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktAsset.m3:117<br>#12 >> 0x00000008011b4950 in = >> RecApply (cl=3D3DInvalid=3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktPlace.m3:469<br>#13 >> 0x000000080377cdf3 in = >> RunThread =3D
> type=3D"cite">(me=3D3DInvalid = >> C/C++ type code 29 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:547<br>#14 = >> 0x000000080377ca6a in =3D
> type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in >> symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:523<br>#15 = >> 0x0000000804b3e4d1 in =3D
> type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >> 0x0000000000000000 in ?? =3D
> type=3D"cite">()<br>(m3gdb) >> <br><br><br>Mika = >> Nystrom writes:<br><blockquote =3D
> blockquote>
> type=3D"cite">type=3D3D"cite">Hello = >> m3devel,<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">I'm running =3D
> type=3D"cite">into problems with the current release = >> =3D
> type=3D"cite">candidate.<br></blockquote><blockquote = >> type=3D3D"cite">I'm attaching a =3D
> type=3D"cite">backtrace from one crash, but I think I also am = >> =3D
> type=3D"cite">seeing<br></blockquote><blockquote = >> type=3D3D"cite">deadlocks in the =3D
> type=3D"cite">threading system---my application goes = >> =3D
> type=3D"cite">catatonic.<br></blockquote><blockquote = >> type=3D3D"cite">Of course it *is* =3D
> blockquote>
> type=3D"cite">possible it's a bug in my application, but it = >> =3D
> type=3D"cite">works<br></blockquote><blockquote = >> type=3D3D"cite">on PM3 and on CM3 on =3D
> blockquote>
> type=3D"cite">PPC_DARWIN.<br></ >> blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Finally I'm =3D
> type=3D"cite">still concerned about threading performance but in >> the = >> =3D
> type=3D"cite">light<br></blockquote><blockquote = >> type=3D3D"cite">of the bugs it's hard to = >> =3D
say much about it >> yet, I = >> think...<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">(The program in =3D
> blockquote>
> type=3D"cite">question is a highly multithreaded stock = >> =3D
> type=3D"cite">market<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">simulator.)<br></ >> blockquote>&= >> lt;blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite"> =3D
> type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></ >> blockquote&= >> gt;<blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote type=3D3D"cite">*** runtime =3D
> blockquote>
> type=3D"cite">error:<br></blockquote><blockquote = >> type=3D3D"cite">*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">*** = >> &nbsp;&nbsp;&nbsp;file =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">589<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Program =3D
> type=3D"cite">received signal SIGABRT, = >> Aborted.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) show =3D
> type=3D"cite">args<br></blockquote><blockquote = >> type=3D3D"cite">Argument list to give =3D
> blockquote>
> type=3D"cite">program being debugged when it is started is = >> "@M3debugtrace=3D3Dmktsim.out =3D
> type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >> -symbology =3D
> type=3D"cite">tws<br></blockquote><blockquote = >> type=3D3D"cite">-replay =3D
> type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >> 2009-09-10 at 15:59 -port 7001 =3D
> type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 >> 7009 = >> -dp 0.25 7011 =3D
-dp >> 0.30 = >> <br></blockquote><blockquote type=3D3D"cite">7013 = >> -sync 60 =3D
- >> unsolicitedfills = >> 0.5 -cp 0.5 -xtimeport 7200 =3D
> type=3D"cite">isolate90.src".<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) =3D
> type=3D"cite">where<br></blockquote><blockquote = >> type=3D3D"cite">#0 =3D
> type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#1 =3D
> type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#2 =3D
> type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >> =3D
> type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></ >> blockquote>= >> <blockquote =3D
> type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >> Crash (msg=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTProcess.m3:65<br></ >> blockquote><bloc= >> kquote =3D
> type=3D"cite">type=3D3D"cite">#4= >> &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >> =3D
C/C++ type code 36 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTError.m3:118<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in >> MsgS = >> (file=3D3DInvalid C/C++ =3D
> type=3D"cite">type= >> code 35 in symbol table.<br></blockquote><blockquote = >> type=3D3D"cite">) =3D
> type=3D"cite">at = >> ../src/runtime/common/RTError.m3:40<br></ >> blockquote><blockq= >> uote =3D
> type=3D"cite">type=3D3D"cite">#6 = >> &nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >> =3D
type code 30 in >> symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTException.m3:79<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">= >> #7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >> =3D
C/C++ type code 30 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:39<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >> Raise (act=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >> DefaultBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:47<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >> (act=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in >> ReportFault = >> (module=3D3DInvalid =3D
C/ >> C++ = >> type code 35 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in >> _m3_fault = >> (arg=3D3DInvalid C/C++ =3D
> type=3D"cite">type = >> code 39 in symbol table.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">)<br></ >> blockquote><blockqu= >> ote type=3D3D"cite"> &nbsp;from =3D
> blockquote>
> type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so. >> 5<br= >> ></blockquote><bl=3D
> type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in >> Fork = >> (closure=3D3DInvalid =3D
> type=3D"cite">C/C++ = >> type code 26 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >> (t=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/MktPlace.m3:116<br></ >> blockquote><block= >> quote type=3D3D"cite">#17 =3D
> type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type >> code = >> 26 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/MktIsolator.m3:514<br></ >> blockquote><bl= >> ockquote type=3D3D"cite">#18 =3D
> type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ >> type = >> code 39 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/Main.m3:734<br></ >> blockquote><blockquot= >> e type=3D3D"cite">#19 =3D
> type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C+ >> + = >> type code 29 in =3D
> type=3D"cite">symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >> (m=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 29 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >> (b=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 31 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >> continue, or q &lt;return&gt; to =3D
> blockquote>
> type=3D"cite">quit---<br></blockquote><blockquote = >> type=3D3D"cite">#22 0x0000000000404194 =3D
> blockquote>
> type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >> envp=3D3D0x7fffffffdf50) at =3D
> type=3D"cite">_m3main.mc:4<br></ >> blockquote><blockquote = >> type=3D3D"cite">#23 =3D
> type=3D"cite">0x00000000004040de in _start = >> ()<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> up 15<br></blockquote><blockquote >> type=3D3D"cite">#15 = >> =3D
0x000000080377d1bc in >> Fork = >> =3D
> type=3D"cite">(closure=3D3D16_00000008064c8930)<br></ >> blockquote&g= >> t;<blockquote type=3D3D"cite">=3D
> type=3D"cite">&nbsp;&nbsp;at =3D
> blockquote>
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">589 = >> & >> ;nbsp >> ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >> ;nbsp;WITH r =3D
=3D3D = >> pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >> =3D
> type=3D"cite">END;<br></blockquote><blockquote = >> type=3D3D"cite">Current language: =3D
> blockquote>
> type=3D"cite">&nbsp;auto; currently = >> Modula-3<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> print r<br></blockquote><blockquote = >> type=3D3D"cite">$1=3D
> type=3D"cite">=3D3D = >> 11<br></blockquote><blockquote type=3D3D"cite"> >> (m3gdb) = >> =3D
> type=3D"cite"><br></blockquote><blockquote = >> type=3D3D"cite"><br></blockquote><blockquote = >> =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></blockquote></ >> div>= >> </blockquote></div><br></body></ >> html>=3D
= >>

> type=3D"cite">--Apple-Mail-21--467118296--
> blockqu= >> ote>

= >> >> --Apple-Mail-24--465395183-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:10:11 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:10:11 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: <20091031191011.63E701A2097@async.async.caltech.edu> Haha, this is cool! I've never seen a program fail TWO assertions! (-lthr) WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) initialized, will not attempt executions against it. WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) Tony Hosking writes: > >--Apple-Mail-27--464514552 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Can you try linking with -lthr? From hosking at cs.purdue.edu Sat Oct 31 20:15:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:15:20 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031191011.63E701A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> Message-ID: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Any idea what the return code is for line 589? On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > Haha, this is cool! I've never seen a program fail TWO assertions! > (-lthr) > > WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) > initialized, will not attempt executions against it. > WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) > Tony Hosking writes: >> >> --Apple-Mail-27--464514552 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Can you try linking with -lthr? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:23:34 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:23:34 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Message-ID: <20091031192335.050261A207D@async.async.caltech.edu> It's 11. How can I switch between threads in (m3)gdb? Tony Hosking writes: > >--Apple-Mail-30--463553748 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Any idea what the return code is for line 589? > >On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > >> Haha, this is cool! I've never seen a program fail TWO assertions! >> (-lthr) >> >> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >> initialized, will not attempt executions against it. >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) >> Tony Hosking writes: >>> >>> --Apple-Mail-27--464514552 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Can you try linking with -lthr? > > >--Apple-Mail-30--463553748 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">Any = >idea what the return code is for line 589?
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Haha, = >this is cool!  I've never seen a program fail TWO assertions! = >(-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >(fully) initialized, will not attempt executions against it.
WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***



***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb)
Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Can you try = >linking with = >-lthr?

= > >--Apple-Mail-30--463553748-- From hosking at cs.purdue.edu Sat Oct 31 20:45:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:45:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: threads all bt should give a backtrace of all threads. 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:09 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <0A73F2B1-8840-46C9-9F32-9503CE44AED8@cs.purdue.edu> Sorry: thread apply all bt 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:33 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:33 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> What does RC=11 correspond to in errno? 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:06:23 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:06:23 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <20091031200623.C0BC71A2097@async.async.caltech.edu> With the RC m3gdb it either segfaults gdb or: (m3gdb) threads Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all bt Can't find Modula-3 identifier: ThreadPosix (m3gdb) Tony Hosking writes: > >--Apple-Mail-33--461716527 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >threads all bt > >should give a backtrace of all threads. > From mika at async.async.caltech.edu Sat Oct 31 21:08:10 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:08:10 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> Message-ID: <20091031200810.AF0821A2097@async.async.caltech.edu> #define ECHILD 10 /* No child processes */ #define EDEADLK 11 /* Resource deadlock avoided */ /* 11 was EAGAIN */ #define ENOMEM 12 /* Cannot allocate memory */ Tony Hosking writes: > >--Apple-Mail-35--461680347 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >What does RC=11 correspond to in errno? > >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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > >> It's 11. How can I switch between threads in (m3)gdb? >> >> Tony Hosking writes: >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Any idea what the return code is for line 589? >>> >>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>> >>>> Haha, this is cool! I've never seen a program fail TWO assertions! >>>> (-lthr) >>>> >>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>> initialized, will not attempt executions against it. >>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>> *** >>>> >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>> *** >>>> >>>> >>>> Program received signal SIGABRT, Aborted. >>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>> (m3gdb) >>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-27--464514552 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> Can you try linking with -lthr? >>> >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">Any = >>> idea what the return code is for line 589?>> div>
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 15:10, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">
Haha, = >>> this is cool!  I've never seen a program fail TWO assertions! = >>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>> (fully) initialized, will not attempt executions against >>> it.
WARNING: = >>> TWSReplayer.ReqMktData: Couldnt find data for = >>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
***



***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 917
***


Program received signal SIGABRT, = >>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>> type=3D"cite">
>> type=3D"cite">--Apple-Mail-27--464514552
>> blockquote>
>> type=3D"cite">Content-Type: text/plain;
>> type=3D"cite">>> space:pre"> = >>> charset=3DUS-ASCII;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> format=3Dflowed;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> delsp=3Dyes
>> type=3D"cite">Content-Transfer-Encoding: = >>> 7bit
>> type=3D"cite">
Can you >>> try = >>> linking with = >>> -lthr?

= >>> >>> --Apple-Mail-30--463553748-- > > >--Apple-Mail-35--461680347 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">What does RC=3D11 correspond to = >in errno?

style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" color=3D"#0000FF">class=3D"Apple-style-span" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Antony = >Hoskingface=3D"Gill Sans">'Gill Sans'; ">'Gill Sans'; "> |class=3D"Apple-converted-space"> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; ">class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >">Associate Professorstyle=3D"font-family: 'Gill Sans'; ">style=3D"font-family: 'Gill Sans'; "> | Computer Science | Purdue = >University
face=3D"GillSans-Light">style=3D"font-family: GillSans-Light; ">305 N. University Street | West = >Lafayette | IN 47907 | USA
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Officeclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >"> +1 765 494 6001 |class=3D"Apple-converted-space"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Mobileclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-converted-space"> +1 765 427 = >5484
face=3D"GillSans-Light">
class=3D"khtml-block-placeholder">
>

class=3D"Apple-interchange-newline">

class=3D"Apple-interchange-newline">

On 31 Oct 2009, = >at 15:23, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
It's = >11.  How can I switch between threads in (m3)gdb?

Tony = >Hosking writes:

type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Any idea what = >the return code is for line 589?
type=3D"cite">
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">Haha, this is cool!  I've never seen a program fail = >TWO assertions!  
type=3D"cite">
type=3D"cite">(-lthr)
type=3D"cite">
type=3D"cite">
type=3D"cite">
WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet (fully) = > 
type=3D"cite">initialized, will not attempt executions against = >it.
type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program received signal SIGABRT, = >Aborted.
type=3D"cite">
0x0000000804c9fa9c in thr_kill = >() from /lib/libc.so.7
type=3D"cite">
type=3D"cite">(m3gdb)
type=3D"cite">
Tony Hosking = >writes:
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
ockquote>
type=3D"cite">Content-Type: = >text/plain;
type=3D"cite">
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >charset=3DUS-ASCII;
kquote type=3D"cite">
type=3D"cite"> = >format=3Dflowed;
ote type=3D"cite">
type=3D"cite"> = >delsp=3Dyes
type=3D"cite">
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
type=3D"cite">
type=3D"cite">
Can = >you try linking with = >-lthr?
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; "><div = >=3D
type=3D"cite">apple-content-edited=3D3D"true"><span = >class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, 0, 0); = >font-family: =3D
Helvetica; = >font-size: 12px; font-style: normal; font-variant: normal; = >=3D
font-weight: normal; = >letter-spacing: normal; line-height: normal; = >=3D
orphans: 2; text-align: = >auto; text-indent: 0px; text-transform: none; = >=3D
white-space: normal; = >widows: 2; word-spacing: 0px; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >=3D
idea what the return code = >is for line = >589?</font></span></div><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 15:10, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >type=3D3D"cite"><div>Haha, =3D
type=3D"cite">this is cool! &nbsp;I've never seen a program fail TWO = >assertions! =3D
type=3D"cite">(-lthr)<br><br>WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet =3D
type=3D"cite">(fully) initialized, will not attempt executions against = >it.<br>WARNING: =3D
type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >=3D
type=3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br>***<br><br><br><br>***&= >lt;br>*** runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">917<br>***<br><br><br>Program = >received signal SIGABRT, =3D
type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony Hosking = >writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">--Apple-Mail-27--464514552<br></= >blockquote><blockquote =3D
type=3D"cite">type=3D3D"cite">Content-Type: = >text/plain;<br></blockquote><blockquote = >=3D
type=3D3D"cite"><span = >class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">class=3D"Apple-tab-span" style=3D"white-space:pre"> = >=3D
type=3D"cite"></span>charset=3D3DUS-ASCII;<br></blockquote&= >gt;<blockquote type=3D3D"cite"><span=3D
te type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>format=3D3Dflowed;<br></blockquote>= ><blockquote type=3D3D"cite"><span =3D
type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>delsp=3D3Dyes<br></blockquote><b= >lockquote =3D
type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >=3D
type=3D"cite">7bit<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Can you try =3D
type=3D"cite">linking with =3D
type=3D"cite">-lthr?<br></blockquote></div></blockquo= >te></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-30--463553748--
ote>

= > >--Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:12 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200810.AF0821A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> Message-ID: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Deadlock is not possible in this instance. No other locks should be held. I notice that it used to be EAGAIN: does that imply we should be retrying the lock here? Did you confirm linking with -lthr? On 31 Oct 2009, at 16:08, Mika Nystrom wrote: > #define ECHILD 10 /* No child processes */ > #define EDEADLK 11 /* Resource deadlock avoided > */ > /* 11 was EAGAIN */ > #define ENOMEM 12 /* Cannot allocate memory */ > > Tony Hosking writes: >> >> --Apple-Mail-35--461680347 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> What does RC=11 correspond to in errno? >> >> 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: >> >>> It's 11. How can I switch between threads in (m3)gdb? >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Any idea what the return code is for line 589? >>>> >>>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>>> >>>>> Haha, this is cool! I've never seen a program fail TWO >>>>> assertions! >>>>> (-lthr) >>>>> >>>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>>> initialized, will not attempt executions against it. >>>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for >>>>> CEPH:TSE:CAD >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) >>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-27--464514552 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> Can you try linking with -lthr? >>>> >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">Any = >>>> idea what the return code is for line 589?>>> div>
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 15:10, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">
Haha, = >>>> this is cool!  I've never seen a program fail TWO >>>> assertions! = >>>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>>> (fully) initialized, will not attempt executions against >>>> it.
WARNING: = >>>> TWSReplayer.ReqMktData: Couldnt find data for = >>>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
***



***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 917
***


Program received signal SIGABRT, = >>>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>>> type=3D"cite">
>>> type=3D"cite">--Apple-Mail-27--464514552
>>> blockquote>
>>> type=3D"cite">Content-Type: text/plain;
>>> blockquote>
>>> type=3D"cite">>>> space:pre"> = >>>> charset=3DUS-ASCII;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> format=3Dflowed;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> delsp=3Dyes
>>> type=3D"cite">Content-Transfer-Encoding: = >>>> 7bit
>>> type=3D"cite">
Can you >>>> try = >>>> linking with = >>>> -lthr?

= >>>> >>>> --Apple-Mail-30--463553748-- >> >> >> --Apple-Mail-35--461680347 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">What does RC=3D11 >> correspond to = >> in errno?

> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" color=3D"#0000FF">> class=3D"Apple-style-span" face=3D"Gill Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Antony = >> Hosking> face=3D"Gill Sans">> family: = >> 'Gill Sans'; ">> family: = >> 'Gill Sans'; "> | >> > class=3D"Apple-converted-space"> > class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; >> ">> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >> ">Associate Professor> style=3D"font-family: 'Gill Sans'; ">> span" = >> style=3D"font-family: 'Gill Sans'; "> | Computer Science | >> Purdue = >> University
> style-span"= >> face=3D"GillSans-Light">> style=3D"font-family: GillSans-Light; ">305 N. University Street | >> West = >> Lafayette | IN 47907 | USA
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Office> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >> "> +1 765 494 6001 |> class=3D"Apple-converted-space"> > font>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Mobile> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-converted-space"> +1 765 427 = >> 5484
> span" = >> face=3D"GillSans-Light">
> class=3D"khtml-block-placeholder">
> span>>>

> class=3D"Apple-interchange-newline">
> span>
> class=3D"Apple-interchange-newline">

On 31 Oct >> 2009, = >> at 15:23, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
It's = >> 11.  How can I switch between threads in (m3)gdb?

Tony = >> Hosking writes:

> blockquote>
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Any idea >> what = >> the return code is for line 589?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Haha, this is cool!  I've never seen a program >> fail = >> TWO assertions!  
> type=3D"cite">
> type=3D"cite">(-lthr)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
WARNING: MktPlace.RecApply: = >> asset CEPH:CAD not yet (fully) = >>  
> type=3D"cite">
> type=3D"cite">initialized, will not attempt executions against = >> it.
> type=3D"cite">
> type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data >> for = >> CEPH:TSE:CAD
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Program received signal >> SIGABRT, = >> Aborted.
> type=3D"cite">
0x0000000804c9fa9c in >> thr_kill = >> () from /lib/libc.so.7
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
Tony Hosking = >> writes:
> type=3D"cite">> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>> ockquote>
> type=3D"cite">
> type=3D"cite">Content-Type: = >> text/plain;
> type=3D"cite">
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> charset=3DUS-ASCII;
> blockquote>> kquote type=3D"cite">
> type=3D"cite">> space:pre"> = >> format=3Dflowed;
> blockquote>> ote type=3D"cite">
> type=3D"cite">> space:pre"> = >> delsp=3Dyes
> blockquote>
> type=3D"cite">
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Can = >> you try linking with = >> -lthr?
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; "><div = >> =3D
> type=3D"cite">apple-content-edited=3D3D"true"><span = >> class=3D3D"Apple-style-span" =3D
> type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, >> 0, 0); = >> font-family: =3D
> type=3D"cite">Helvetica; = >> font-size: 12px; font-style: normal; font-variant: normal; = >> =3D
font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> =3D
orphans: 2; text- >> align: = >> auto; text-indent: 0px; text-transform: none; = >> =3D
white-space: normal; = >> widows: 2; word-spacing: 0px; =3D
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >> =3D
idea what the return >> code = >> is for line = >> 589?</font></span></div><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 15:10, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> type=3D3D"cite"><div>Haha, =3D
> type=3D"cite">this is cool! &nbsp;I've never seen a program >> fail TWO = >> assertions! =3D
> type=3D"cite">(-lthr)<br><br>WARNING: >> MktPlace.RecApply: = >> asset CEPH:CAD not yet =3D
> type=3D"cite">(fully) initialized, will not attempt executions >> against = >> it.<br>WARNING: =3D
> type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >> =3D
> type >> = >> 3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >> runtime error:<br>*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type >> = >> 3D >> "cite">589<br>***<br><br><br><br>***&= >> lt;br>*** runtime error:<br>*** =3D
> blockquote>
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">917<br>***<br><br><br>Program = >> received signal SIGABRT, =3D
> type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony >> Hosking = >> writes:<br><blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">--Apple- >> Mail-27--464514552<br></= >> blockquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Type: = >> text/plain;<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><span = >> class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> =3D
> type=3D"cite"></span>charset=3D3DUS-ASCII;<br></ >> blockquote&= >> gt;<blockquote type=3D3D"cite"><span=3D
> blockquote>> te type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>format=3D3Dflowed;<br></ >> blockquote>= >> <blockquote type=3D3D"cite"><span =3D
> blockquote>> type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>delsp=3D3Dyes<br></ >> blockquote><b= >> lockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >> =3D
> type=3D"cite">7bit<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Can you try =3D
> type=3D"cite">linking with =3D
> type=3D"cite">-lthr?<br></blockquote></div></ >> blockquo= >> te></div><br></body></html>=3D
> blockquote>= >>

> type=3D"cite">--Apple-Mail-30--463553748--
> blockqu= >> ote>

= >> >> --Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200623.C0BC71A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <20091031200623.C0BC71A2097@async.async.caltech.edu> Message-ID: <1210FEF9-5EAD-4313-A96A-2709711F4BDE@cs.purdue.edu> Try regular gdb. Set a breakpoint at RTHooks__ReportFault. Then thread apply all bt. 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 31 Oct 2009, at 16:06, Mika Nystrom wrote: > With the RC m3gdb it either segfaults gdb or: > > (m3gdb) threads > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all bt > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) > > Tony Hosking writes: >> >> --Apple-Mail-33--461716527 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> threads all bt >> >> should give a backtrace of all threads. >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:29:08 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:29:08 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Message-ID: <20091031202908.E26BA1A2097@async.async.caltech.edu> Tony Hosking writes: >Deadlock is not possible in this instance. No other locks should be >held. I notice that it used to be EAGAIN: does that imply we should >be retrying the lock here? > >Did you confirm linking with -lthr? Yeah, the first (single ASSERT failure) was -lpthread. The second (double ASSERT failure) was -lthr. Mika From hendrik at topoi.pooq.com Sat Oct 31 22:39:19 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sat, 31 Oct 2009 17:39:19 -0400 Subject: [M3devel] m3 RC In-Reply-To: References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: <20091031213919.GA10521@topoi.pooq.com> On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: > Yeah, and if that is not working properly then it might also explain > your collector failures too. > > Have the RC archives not been updated for the changes to the RC > branch? It looks like you are using an old ThreadPThread. Does this mean we wish we already had an RC4? -- hendrik From hosking at cs.purdue.edu Sat Oct 31 22:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 17:44:50 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031213919.GA10521@topoi.pooq.com> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> <20091031213919.GA10521@topoi.pooq.com> Message-ID: <1C5881C1-E011-4134-8FA7-4D7A9F2DCFD3@cs.purdue.edu> Not clear. It would be good to diagnose the error on FreeBSD 7 -lthr first. On 31 Oct 2009, at 17:39, hendrik at topoi.pooq.com wrote: > On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: >> Yeah, and if that is not working properly then it might also explain >> your collector failures too. >> >> Have the RC archives not been updated for the changes to the RC >> branch? It looks like you are using an old ThreadPThread. > > Does this mean we wish we already had an RC4? > > -- hendrik -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland.illig at gmx.de Thu Oct 1 08:41:21 2009 From: roland.illig at gmx.de (Roland Illig) Date: Thu, 01 Oct 2009 08:41:21 +0200 Subject: [M3devel] Mailing list archive In-Reply-To: <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> References: <4AC24E30.5030304@gmx.de> <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> Message-ID: <4AC44F11.5010506@gmx.de> Olaf Wagner schrieb: > Quoting Roland Illig : > >> Hi, >> >> I would like to fix a bug I found in 2005, but the bug's details are >> not in trac, but only in a mailing list archive, which isn't available >> anymore. >> >> https://projects.elego.de/cm3/ticket/640 >> >> Can anyone provide me with the details? > > Here is a copy of your old mail: Thank you. I cannot reproduce the bug anymore, so I think you can close the ticket. Roland From wagner at elegosoft.com Thu Oct 1 12:57:55 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 1 Oct 2009 12:57:55 +0200 (CEST) Subject: [M3devel] p007 still hangs on I386_OPENBSD Message-ID: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> It seems to me that the thread test p007 still hangs at least on I386_OPENBSD: http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console 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 Thu Oct 1 16:23:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 1 Oct 2009 10:23:36 -0400 Subject: [M3devel] p007 still hangs on I386_OPENBSD In-Reply-To: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> References: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> Message-ID: <0E0CFE4A-267A-4719-B85E-6FDBDECBB4A0@cs.purdue.edu> Weird. I don't have that platform to test on. Can you attach to the process in gdb, and get a backtrace for all the threads? On 1 Oct 2009, at 06:57, Olaf Wagner wrote: > It seems to me that the thread test p007 still hangs at least on > I386_OPENBSD: > > http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console > > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:27:14 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:27:14 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:33:05 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:33:05 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: e.g. does this help: PROCEDURE Alert(t: T) = VAR prev, next: T; BEGIN IF t = NIL THEN Die(ThisLine(), "Alert called from non-Modula-3 thread") END; (* remove this *) EnterCriticalSection_giant(); (* make next two lines one interlocked *) t.alerted := TRUE; IF t.alertable THEN (* add this *) EnterCriticalSection_giant(); (* Dequeue from any CV and unblock from the semaphore *) IF t.waitingOn # NIL THEN next := t.waitingOn.waiters; prev := NIL; WHILE next # t DO <* ASSERT(next#NIL) *> prev := next; next := next.nextWaiter; END; IF prev = NIL THEN t.waitingOn.waiters := t.nextWaiter ELSE prev.nextWaiter := t.nextWaiter; END; t.nextWaiter := NIL; t.waitingOn := NIL; END; t.alertable := FALSE; IF ReleaseSemaphore(t.waitSema, 1, NIL) = 0 THEN Choke(ThisLine()); END; END; LeaveCriticalSection_giant(); (* this moves up obviously *) END Alert; From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Subject: win32 threads/alert/race Date: Mon, 5 Oct 2009 14:27:14 +0000 Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Oct 8 12:14:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 08 Oct 2009 12:14:39 +0200 Subject: [M3devel] Status of threads for RC4? Message-ID: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Activity has ceased on the list and the CM3 repository, but I'm not sure about the state of the thread system on Windows and POSIX (here at least on OpenBSD). Are further improvements to be expected? Do we know the reason for the non-termination of p007 on OpenBSD? A short update would be great. TIA, 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 Thu Oct 8 13:58:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 8 Oct 2009 04:58:37 -0700 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Posix was thought good; but openbsd not looked at, Win32 can hang. I'm still thinking. Current ideas: try plugging in boost's condition variables, try "what java does". Boost looks inefficient but I'm willing to take that at this point; java looks deceptively simple - I looking at the right code and it has enough features? Win32 may also have been this way "forever"? - Jay (phone) On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > From jay.krell at cornell.edu Thu Oct 8 15:32:13 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 13:32:13 +0000 Subject: [M3devel] condition variables/win32 Message-ID: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:54:07 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:54:07 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach to the process using gdb and grab a stack dump). Are we seeing this on any other pthread target? On 8 Oct 2009, at 06:14, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:55:03 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:55:03 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Message-ID: <99BC9CEE-2E27-4C70-AE1C-DC8D1C832049@cs.purdue.edu> On 8 Oct 2009, at 07:58, jay.krell at cornell.edu wrote: > Posix was thought good; but openbsd not looked at, > Win32 can hang. I'm still thinking. Current ideas: try plugging in > boost's condition variables, try "what java does". Boost looks > inefficient but I'm willing to take that at this point; java looks > deceptively simple - I looking at the right code and it has enough > features? > Win32 may also have been this way "forever"? Jay, I haven't had time to consider you most recent proposal... Probably not until next week. > > - Jay (phone) > > On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > >> Activity has ceased on the list and the CM3 repository, but I'm not >> sure about the state of the thread system on Windows and POSIX >> (here at least on OpenBSD). >> >> Are further improvements to be expected? >> Do we know the reason for the non-termination of p007 on OpenBSD? >> >> A short update would be great. >> >> TIA, >> >> 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 Thu Oct 8 16:09:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 10:09:31 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 16:22:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 14:22:51 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> References: Message-ID: But, is it common? Ok to make it contribute significantly to spurious wakeups? That is, I have this crazy theory...really need to come back to this fresh, try coding it, testing it..where you can implement a condition variable simply by waking everyone whenever a mutex is exited. I had this thought that what a condition variable represents is, instead of telling the kernel, here is one bit, an event, I am waiting for, instead you are telling it, hey, I have some custom code to evaluate, but it is false currently, and can only change when some exits such and such a lock, so just let me know when that lock is exited. The guy releasing the lock, or signal or broadcast..if he is signaling or broadcasting, he knows more specifically what he changed, not everything computable based on data protected by the lock, just something specific, but you can just wake everyone waiting on any of the conditions associated with the lock and it isn't maximally efficient but it should be correct. Basically, condition variable equals "wake me when someone changes some data and exits its lock". A better condition variable is that when there are multiple "conditions" in the data, the code making the change can target the wakeup better. But it isn't requires. And sometimes might not even matter much -- if in fact the ratio of locks to conditions is close to or equal to 1. - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] condition variables/win32 Date: Thu, 8 Oct 2009 10:09:31 -0400 In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 17:00:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 11:00:36 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: <20091008143422.D91C01A207A@async.async.caltech.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <20091008143422.D91C01A207A@async.async.caltech.edu> Message-ID: Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>>

= >> >> --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Thu Oct 8 18:15:57 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 12:15:57 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <4ACDD77A.1E75.00D7.1@scires.com> Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:13:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:13:03 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:16:58 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:16:58 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACDD77A.1E75.00D7.1@scires.com> References: Message-ID: Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Fri Oct 9 00:47:03 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 18:47:03 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <4ACDD77A.1E75.00D7.1@scires.com> Message-ID: <4ACE2482.1E75.00D7.1@scires.com> I do make use of the alert mechanism and condition variables in my code. My concern is that if Juno is the only place where we have observed a problem, maybe the problem is with the Juno code and not with the threads implementation. That is why I was wondering if we had a non-Juno example that exhibits a problem. Having more than one exemplar may also help track down the problem. The modules I referenced in my prior message create higher-level abstractions. They are implemented using the primitives available in the language proper, no UNSAFE stuff. Of course, any efficiency improvement in the lower levels would be a benefit, and yes it is probable that recoding my abstractions at a lower level or making them features at a lower level would be more efficient. Note that I'm not suggesting that any of these abstractions be made features of the language or pushed down to the lower levels. I was just pointing out that I've got a lot of stuff that uses threading on Windows and I haven't observed that the threading implementation is broken. Perhaps I am not exercising it the same way as Juno, or perhaps Juno is doing something wrong. Regards, Randy >>> Jay K 10/8/2009 3:16 PM >>> Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Fri Oct 9 13:59:31 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 09 Oct 2009 13:59:31 +0200 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACE2482.1E75.00D7.1@scires.com> References: <4ACDD77A.1E75.00D7.1@scires.com> <4ACE2482.1E75.00D7.1@scires.com> Message-ID: <20091009135931.chei3435hcsgcwog@mail.elegosoft.com> Quoting Randy Coleburn : > I do make use of the alert mechanism and condition variables in my code. > > My concern is that if Juno is the only place where we have observed > a problem, maybe the problem is with the Juno code and not with the > threads implementation. That is why I was wondering if we had a > non-Juno example that exhibits a problem. Having more than one > exemplar may also help track down the problem. > > The modules I referenced in my prior message create higher-level > abstractions. They are implemented using the primitives available > in the language proper, no UNSAFE stuff. Of course, any efficiency > improvement in the lower levels would be a benefit, and yes it is > probable that recoding my abstractions at a lower level or making > them features at a lower level would be more efficient. > > Note that I'm not suggesting that any of these abstractions be made > features of the language or pushed down to the lower levels. I was > just pointing out that I've got a lot of stuff that uses threading > on Windows and I haven't observed that the threading implementation > is broken. Perhaps I am not exercising it the same way as Juno, or > perhaps Juno is doing something wrong. I would second Randy's concern insofar as we should be able to add a test that exhibits the failure and then test any new implementation against it. At least that would be the proper way to do it. If you have a theory what breaks or where a race may be hidden, it should be possible to write a simple test, or isn't it? This again is just me with my release engineer's hat on :-) Also, if you have any tests that can be added to m3tests, please do! 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 wagner at elegosoft.com Tue Oct 13 08:46:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 13 Oct 2009 08:46:39 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Quoting Tony Hosking : > I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > to the process using gdb and grab a stack dump). Are we seeing this > on any other pthread target? I just logged in quickly to Jay's OpenBSD system and started test 7. Output stops after line 8 and I had to hit Control-C. bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) set lang Modula-3 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "\000", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= RECORD inCritical = 0; pool = RECORD note = Allocated; pure = FALSE; page = NIL; next = NIL; limit = NIL; END; END) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=16_3c001114) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) Attaching to a running program doesn't yield anything useful: bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & [1] 26756 bash-3.2$ 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: bash-3.2$ ps PID TT STAT TIME COMMAND 22500 p0 Is 0:00.00 -ksh (ksh) 18592 p0 S 0:00.04 bash 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm 28998 p0 R+ 0:00.00 ps bash-3.2$ m3gdb GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd". (m3gdb) attach 26756 Attaching to process 26756 0x0d35f8f1 in ?? () (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm No symbol table is loaded. Use the "file" command. (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm Reading symbols from /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. (m3gdb) bt #0 0x0d35f8f1 in ?? () #1 0x0a0c0314 in ?? () #2 0x84533000 in ?? () #3 0x00000001 in ?? () #4 0x00000001 in ?? () #5 0x00000001 in ?? () #6 0x00000000 in ?? () Does this help? Anything I should try this evening? 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 Tue Oct 13 15:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 13 Oct 2009 09:16:08 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Message-ID: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> I need to see all the threads: thread apply all bt On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need a stack dump from the hung OpenBSD p007 run to diagnose >> (attach >> to the process using gdb and grab a stack dump). Are we seeing this >> on any other pthread target? > > I just logged in quickly to Jay's OpenBSD system and started test 7. > Output stops after line 8 and I had to hit Control-C. > > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) set lang Modula-3 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "\000", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > FALSE; page = NIL; next = NIL; limit = NIL; END; END) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) > > Attaching to a running program doesn't yield anything useful: > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > [1] 26756 > bash-3.2$ > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: > bash-3.2$ ps > PID TT STAT TIME COMMAND > 22500 p0 Is 0:00.00 -ksh (ksh) > 18592 p0 S 0:00.04 bash > 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > 28998 p0 R+ 0:00.00 ps > bash-3.2$ m3gdb > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd". > (m3gdb) attach 26756 > Attaching to process 26756 > 0x0d35f8f1 in ?? () > (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > No symbol table is loaded. Use the "file" command. > (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > (m3gdb) bt > #0 0x0d35f8f1 in ?? () > #1 0x0a0c0314 in ?? () > #2 0x84533000 in ?? () > #3 0x00000001 in ?? () > #4 0x00000001 in ?? () > #5 0x00000001 in ?? () > #6 0x00000000 in ?? () > > Does this help? > Anything I should try this evening? > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 14 08:09:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 14 Oct 2009 08:09:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Well, of course you need all thread stacks to diagnose a deadlock, silly me. But I haven't been able to login again since then: Jay, is the OpenBSD server turned off? Could you either turn it on this evening CET or send Tony the needed traces? Thanks in advance, Olaf > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach >>> to the process using gdb and grab a stack dump). Are we seeing this >>> on any other pthread target? >> >> I just logged in quickly to Jay's OpenBSD system and started test 7. >> Output stops after line 8 and I had to hit Control-C. >> >> >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: ^C >> Program received signal SIGINT, Interrupt. >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. >> ) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) set lang Modula-3 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "\000", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) >> >> Attaching to a running program doesn't yield anything useful: >> >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & >> [1] 26756 >> bash-3.2$ >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: >> bash-3.2$ ps >> PID TT STAT TIME COMMAND >> 22500 p0 Is 0:00.00 -ksh (ksh) >> 18592 p0 S 0:00.04 bash >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm >> 28998 p0 R+ 0:00.00 ps >> bash-3.2$ m3gdb >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd". >> (m3gdb) attach 26756 >> Attaching to process 26756 >> 0x0d35f8f1 in ?? () >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm >> No symbol table is loaded. Use the "file" command. >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. >> (m3gdb) bt >> #0 0x0d35f8f1 in ?? () >> #1 0x0a0c0314 in ?? () >> #2 0x84533000 in ?? () >> #3 0x00000001 in ?? () >> #4 0x00000001 in ?? () >> #5 0x00000001 in ?? () >> #6 0x00000000 in ?? () >> >> Does this help? >> Anything I should try this evening? >> >> 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 jay.krell at cornell.edu Thu Oct 15 01:13:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 14 Oct 2009 23:13:57 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 dabenavidesd at yahoo.es Thu Oct 15 10:27:56 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 15 Oct 2009 08:27:56 +0000 (GMT) Subject: [M3devel] Status of threads for RC4? In-Reply-To: Message-ID: <260188.52953.qm@web23603.mail.ird.yahoo.com> Hi all: I was merely thinking how we could mitigate the issue in threading. We could argue the current thread implementation issues on NT are worrisome but, the system performance is more important and I guess a release is waiting? for all platforms stability. I think we could make a work around to put some tests on the GUI subsystem on the test suite, using the sort of capability that Zeus Mentor Snapshot has to capture the screen shot and compare with others results with test already on: m3-ui/ui-tests m3-ui/ui/test Just getting some sort of difference between NT GUI subsystem and X implementation would allows to see where we can be missing something. Also integration on X implementation of Critical mass GUI upgrade would be highly appreciated: cm3-cvs/m3-ui/cmvbt Also I remember I saw the pm3 NT386GNU target implementation doing basic stuff with DEC SRC NT GUI, but? another doing advanced stuff with Mentor and others I think? the code you can get it by the package/src/ directories (http://www.1o0.de/wi-links/modula3/), but I?m not aware if it used the x/cygwin, I don?t think so, but even if so, would be an advance to have mentor running animation stuff until some point we could get better performance in the current NT GUI implementation (could be something in the garbage collection, Tony, as NT has its own garbage collector, has it been maintained after CM3 developed the new collector?) Another shot maybe for next release (7.0) is trying to develop tests on obliq framework and integration with pm3 documentation system, which seemed to be good. About Unix interfaces, Im thinking how to reuse the SPIN digital Unix interface so we can have a sort of a virtualization tool integrated in CM3 as a tool for deploying Unix apps on NT and getting some layers of Modula-3 runtime code based on a standarized Unix interface Sphinx.i3 (path in spin sources tree user/sphinx/src/IX86_SPIN/) something we could call "DECUnix.i3", we could also get some parts of the system running directly over Modula-3 runtime code rather than on bare Unix interfaces getting a more standarized behaviuor and maybe we could gain some knowledge to do experiments for system developers and users Thanks in advance --- El mi?, 14/10/09, Jay K escribi?: De: Jay K Asunto: Re: [M3devel] Status of threads for RC4? Para: "Olaf" , "Tony" CC: "m3devel" Fecha: mi?rcoles, 14 octubre, 2009 6:13 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. ? ?- Jay ? > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:30:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:30:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:49:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:49:51 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: In head, wierd. in gdb: 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 7 30 731: [1] + Stopped (tty output) gdb ./I386_OPENBSD/pgm $ attach shows no stack. Maybe more later? -Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu Date: Thu, 15 Oct 2009 14:30:22 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Status of threads for RC4? Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 wagner at elegosoft.com Thu Oct 15 23:45:04 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 15 Oct 2009 23:45:04 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Here you are: bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-all-pkgs-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) set lang Modula-3 (m3gdb) thread apply all bt Thread 10 (process 23708, thread 0x821ff000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c01105a in AddUnitI (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) at _m3main.mc:4 #11 0x1c00266c in ___start () #12 0x1c0025bf in _start () Warning: the current language does not match this frame. Thread 9 (process 23708, thread 0x821ff400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff4b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 23708, thread 0x87b14c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b14cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, mutex=0x231ca0dc, abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x031cf5a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 7 (process 23708, thread 0x87b14800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b148b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 6 (process 23708, thread 0x87b14000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b140b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 23708, thread 0x8b659800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6598b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 23708, thread 0x8b659000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6590b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 23708, thread 0x868d6400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d64b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 2 (process 23708, thread 0x868d6c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d6cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 1 (process 23708, thread 0x862c9400): #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0xbb315 #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I hope this helps, 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 Fri Oct 16 00:23:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 18:23:20 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: Hmm. This is very weird. All the threads are trying to acquire the same mutex (the global mutex in p007/src/Main.m3), but none of them is actually holding it. So, why can't one of them get it? Anyone else have any idea what's going on here? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 16 01:34:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 19:34:04 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) So what is thread 1 up to? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 18 10:16:11 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 18 Oct 2009 08:16:11 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Sun Oct 18 12:30:28 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Sun, 18 Oct 2009 12:30:28 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Quoting Tony Hosking : >> Thread 1 (process 23708, thread 0x862c9400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0xbb315 >> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) > > So what is thread 1 up to? I don't really understand what's going on there. But I made another test which might or might not be helpful. I single-stepped in thread 1 until it blocks. We get actually no output from other threads then (though several have been started, but then thread 3 seems to be corrupt. Here is the debugger session: -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. (m3gdb) r Starting program: /home/hudson/workspace/cm3-lastok-build-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. [Switching to process 15851, thread 0x85cc4800] Breakpoint 1, Main (mode=0) at ../Main.m3:127 127 BEGIN Current language: auto; currently Modula-3 (m3gdb) n 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) Single stepping until exit from function __i686.get_pc_thunk.bx, which has no line number information. 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 157 RTIO.Flush (); (m3gdb) AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) at ../src/runtime/common/RTLinker.m3:121 121 IF (m = NIL) THEN RETURN END; (m3gdb) 122 AddUnitI(m); (m3gdb) Breakpoint 1, Main (mode=1) at ../Main.m3:127 127 BEGIN (m3gdb) 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) finish Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 127 BEGIN (m3gdb) n 131 iolock := NEW (MUTEX); (m3gdb) 132 stop := NEW (Thread.Condition); (m3gdb) l 127 BEGIN 128 129 (* Thread.MinDefaultStackSize (20000); *) 130 131 iolock := NEW (MUTEX); 132 stop := NEW (Thread.Condition); 133 134 com := NEW (A, limit := 2000); 135 com.done := NEW (Thread.Condition); 136 com.first := 1; (m3gdb) n 134 com := NEW (A, limit := 2000); (m3gdb) 135 com.done := NEW (Thread.Condition); (m3gdb) 136 com.first := 1; (m3gdb) 137 com.next := 1; (m3gdb) 138 com.last := 1; (m3gdb) 139 t := NEW (T, id := 1, limit := 15); (m3gdb) 141 INC (com.count); (m3gdb) 142 Int (com.count, 5, ": "); (m3gdb) 144 th := Thread.Fork (t); (m3gdb) 145 t.thread := th; (m3gdb) 146 LOCK com DO (m3gdb) 147 Thread.Broadcast (com.done); (m3gdb) 148 END; (m3gdb) 151 LOCK com DO (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) ^C[New process 15851] ^C Program received signal SIGINT, Interrupt. [Switching to process 15851] 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) thread apply all bt Thread 11 (process 15851, thread 0x85cc4000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc40b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Current language: auto; currently c Thread 10 (process 15851, thread 0x84895400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848954b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, mutex=0x2dc1d0dc, abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x0dc225a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 9 (process 15851, thread 0x84895c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x84895cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 15851, thread 0x84895000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848950b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 7 (process 15851, thread 0x88197400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881974b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 6 (process 15851, thread 0x88197000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881970b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 15851, thread 0x8931f800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f8b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 15851, thread 0x8931f000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 15851, thread 0x856ab400): #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0x2e493 Thread 2 (process 15851): #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, fname=0x2dc1d0c8 "", lineno=767676616) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, time_remaining=0x7de7fc60) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, rem=0x7de7fc60) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021a29 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c0086b3 in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c008672 in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c008125 in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:110 #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () Thread 1 (process 15851, thread 0x85cc4800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc48b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../Main.m3:153 #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) at _m3main.mc:4 #11 0x1c00268c in ___start () #12 0x1c0025df in _start () #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I also tried increasing the default stack size; it didn't help. If you want me to test anything, I'll be happy to try it. 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 Sun Oct 18 20:09:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:09:02 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Message-ID: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> OK, now this is more interesting. We see that thread 2 is trying to get a GC cycle initiated by stopping the other threads. I am guessing that they are not responding to the thread signal being sent to them. Can you try with @M3debugthreads? 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > Quoting Tony Hosking : > >>> Thread 1 (process 23708, thread 0x862c9400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0xbb315 >>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >> >> So what is thread 1 up to? > > I don't really understand what's going on there. But I made another > test which might or might not be helpful. I single-stepped in thread 1 > until it blocks. We get actually no output from other threads then > (though several have been started, but then thread 3 seems to be > corrupt. Here is the debugger session: > > > -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-lastok-build- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. > [Switching to process 15851, thread 0x85cc4800] > > Breakpoint 1, Main (mode=0) at ../Main.m3:127 > 127 BEGIN > Current language: auto; currently Modula-3 > (m3gdb) n > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) > Single stepping until exit from function __i686.get_pc_thunk.bx, > which has no line number information. > 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 > 157 RTIO.Flush (); > (m3gdb) > AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) > at ../src/runtime/common/RTLinker.m3:121 > 121 IF (m = NIL) THEN RETURN END; > (m3gdb) > 122 AddUnitI(m); > (m3gdb) > > Breakpoint 1, Main (mode=1) at ../Main.m3:127 > 127 BEGIN > (m3gdb) > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) finish > Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () > 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 > 127 BEGIN > (m3gdb) n > 131 iolock := NEW (MUTEX); > (m3gdb) > 132 stop := NEW (Thread.Condition); > (m3gdb) l > 127 BEGIN > 128 > 129 (* Thread.MinDefaultStackSize (20000); *) > 130 > 131 iolock := NEW (MUTEX); > 132 stop := NEW (Thread.Condition); > 133 > 134 com := NEW (A, limit := 2000); > 135 com.done := NEW (Thread.Condition); > 136 com.first := 1; > (m3gdb) n > 134 com := NEW (A, limit := 2000); > (m3gdb) > 135 com.done := NEW (Thread.Condition); > (m3gdb) > 136 com.first := 1; > (m3gdb) > 137 com.next := 1; > (m3gdb) > 138 com.last := 1; > (m3gdb) > 139 t := NEW (T, id := 1, limit := 15); > (m3gdb) > 141 INC (com.count); > (m3gdb) > 142 Int (com.count, 5, ": "); > (m3gdb) > 144 th := Thread.Fork (t); > (m3gdb) > 145 t.thread := th; > (m3gdb) > 146 LOCK com DO > (m3gdb) > 147 Thread.Broadcast (com.done); > (m3gdb) > 148 END; > (m3gdb) > 151 LOCK com DO > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > > > ^C[New process 15851] > ^C > Program received signal SIGINT, Interrupt. > [Switching to process 15851] > 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) thread apply all bt > > Thread 11 (process 15851, thread 0x85cc4000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc40b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > Current language: auto; currently c > > Thread 10 (process 15851, thread 0x84895400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848954b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, > mutex=0x2dc1d0dc, > abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x0dc225a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 9 (process 15851, thread 0x84895c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x84895cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 15851, thread 0x84895000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848950b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 7 (process 15851, thread 0x88197400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881974b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 6 (process 15851, thread 0x88197000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881970b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 15851, thread 0x8931f800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f8b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 15851, thread 0x8931f000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 15851, thread 0x856ab400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0x2e493 > > Thread 2 (process 15851): > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, > fname=0x2dc1d0c8 "", lineno=767676616) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, > time_remaining=0x7de7fc60) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, > rem=0x7de7fc60) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021a29 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c0086b3 in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c008672 in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:110 > #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > > Thread 1 (process 15851, thread 0x85cc4800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc48b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol > table. > ) at ../Main.m3:153 > #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) > at _m3main.mc:4 > #11 0x1c00268c in ___start () > #12 0x1c0025df in _start () > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I also tried increasing the default stack size; it didn't help. > If you want me to test anything, I'll be happy to try it. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 18 20:55:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:55:31 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> Message-ID: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Do we have any idea when this problem started on OpenBSD? Has it always been there? On 18 Oct 2009, at 14:09, Tony Hosking wrote: > OK, now this is more interesting. We see that thread 2 is trying to > get a GC cycle initiated by stopping the other threads. I am > guessing that they are not responding to the thread signal being > sent to them. Can you try with @M3debugthreads? > > > > 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>>> Thread 1 (process 23708, thread 0x862c9400): >>>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>>> ) >>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>> Cannot access memory at address 0xbb315 >>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>> (m3gdb) >>> >>> So what is thread 1 up to? >> >> I don't really understand what's going on there. But I made another >> test which might or might not be helpful. I single-stepped in >> thread 1 >> until it blocks. We get actually no output from other threads then >> (though several have been started, but then thread 3 seems to be >> corrupt. Here is the debugger session: >> >> >> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-lastok-build- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >> [Switching to process 15851, thread 0x85cc4800] >> >> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >> 127 BEGIN >> Current language: auto; currently Modula-3 >> (m3gdb) n >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) >> Single stepping until exit from function __i686.get_pc_thunk.bx, >> which has no line number information. >> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >> 157 RTIO.Flush (); >> (m3gdb) >> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >> at ../src/runtime/common/RTLinker.m3:121 >> 121 IF (m = NIL) THEN RETURN END; >> (m3gdb) >> 122 AddUnitI(m); >> (m3gdb) >> >> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) finish >> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) n >> 131 iolock := NEW (MUTEX); >> (m3gdb) >> 132 stop := NEW (Thread.Condition); >> (m3gdb) l >> 127 BEGIN >> 128 >> 129 (* Thread.MinDefaultStackSize (20000); *) >> 130 >> 131 iolock := NEW (MUTEX); >> 132 stop := NEW (Thread.Condition); >> 133 >> 134 com := NEW (A, limit := 2000); >> 135 com.done := NEW (Thread.Condition); >> 136 com.first := 1; >> (m3gdb) n >> 134 com := NEW (A, limit := 2000); >> (m3gdb) >> 135 com.done := NEW (Thread.Condition); >> (m3gdb) >> 136 com.first := 1; >> (m3gdb) >> 137 com.next := 1; >> (m3gdb) >> 138 com.last := 1; >> (m3gdb) >> 139 t := NEW (T, id := 1, limit := 15); >> (m3gdb) >> 141 INC (com.count); >> (m3gdb) >> 142 Int (com.count, 5, ": "); >> (m3gdb) >> 144 th := Thread.Fork (t); >> (m3gdb) >> 145 t.thread := th; >> (m3gdb) >> 146 LOCK com DO >> (m3gdb) >> 147 Thread.Broadcast (com.done); >> (m3gdb) >> 148 END; >> (m3gdb) >> 151 LOCK com DO >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> >> >> ^C[New process 15851] >> ^C >> Program received signal SIGINT, Interrupt. >> [Switching to process 15851] >> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) thread apply all bt >> >> Thread 11 (process 15851, thread 0x85cc4000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc40b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> Current language: auto; currently c >> >> Thread 10 (process 15851, thread 0x84895400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848954b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >> mutex=0x2dc1d0dc, >> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >> uthread_cond.c:431 >> #3 0x0dc225a7 in _thread_gc (arg=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >> #4 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #5 0x0000002b in ?? () >> #6 0x00000000 in ?? () >> >> Thread 9 (process 15851, thread 0x84895c00): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x84895cb0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> >> Thread 8 (process 15851, thread 0x84895000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848950b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 7 (process 15851, thread 0x88197400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881974b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 6 (process 15851, thread 0x88197000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881970b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 5 (process 15851, thread 0x8931f800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f8b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 4 (process 15851, thread 0x8931f000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f0b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 3 (process 15851, thread 0x856ab400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0x2e493 >> >> Thread 2 (process 15851): >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >> fname=0x2dc1d0c8 "", lineno=767676616) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >> time_remaining=0x7de7fc60) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >> rem=0x7de7fc60) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021a29 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c0086b3 in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:110 >> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> >> Thread 1 (process 15851, thread 0x85cc4800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc48b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >> table. >> ) at ../Main.m3:153 >> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:399 >> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:113 >> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:122 >> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >> at _m3main.mc:4 >> #11 0x1c00268c in ___start () >> #12 0x1c0025df in _start () >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) >> >> I also tried increasing the default stack size; it didn't help. >> If you want me to test anything, I'll be happy to try it. >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Mon Oct 19 00:59:48 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 00:59:48 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Quoting Tony Hosking : > Do we have any idea when this problem started on OpenBSD? Has it > always been there? No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ Build #22 on 27. September was the last good one. Build #23 on 29. September hangs at p007. > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? Jay's server is offline again. I'll try again tomorrow morning. I could have thought of @M3debugthreads myself :-/ 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 Mon Oct 19 00:27:12 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sun, 18 Oct 2009 16:27:12 -0600 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <25EDFCD1-6950-4911-9192-E6CCD84B702F@hotmail.com> We have no real history on OpenBSD, so assume always was this way. - Jay (phone) On Oct 18, 2009, at 12:55 PM, Tony Hosking wrote: > Do we have any idea when this problem started on OpenBSD? Has it > always been there? > > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? >> >> >> >> 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>>> Thread 1 (process 23708, thread 0x862c9400): >>>>> #0 _thread_kern_sched (scp=Cannot access memory at address >>>>> 0xbb319 >>>>> ) >>>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>>> Cannot access memory at address 0xbb315 >>>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>>> (m3gdb) >>>> >>>> So what is thread 1 up to? >>> >>> I don't really understand what's going on there. But I made another >>> test which might or might not be helpful. I single-stepped in >>> thread 1 >>> until it blocks. We get actually no output from other threads then >>> (though several have been started, but then thread 3 seems to be >>> corrupt. Here is the debugger session: >>> >>> >>> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >>> GNU gdb plus Modula-3 6.4 >>> Copyright 2005 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 "i686-openbsd"... >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >>> (m3gdb) r >>> Starting program: /home/hudson/workspace/cm3-lastok-build- >>> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >>> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >>> [Switching to process 15851, thread 0x85cc4800] >>> >>> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >>> 127 BEGIN >>> Current language: auto; currently Modula-3 >>> (m3gdb) n >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) >>> Single stepping until exit from function __i686.get_pc_thunk.bx, >>> which has no line number information. >>> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >>> 157 RTIO.Flush (); >>> (m3gdb) >>> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >>> at ../src/runtime/common/RTLinker.m3:121 >>> 121 IF (m = NIL) THEN RETURN END; >>> (m3gdb) >>> 122 AddUnitI(m); >>> (m3gdb) >>> >>> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) finish >>> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >>> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) n >>> 131 iolock := NEW (MUTEX); >>> (m3gdb) >>> 132 stop := NEW (Thread.Condition); >>> (m3gdb) l >>> 127 BEGIN >>> 128 >>> 129 (* Thread.MinDefaultStackSize (20000); *) >>> 130 >>> 131 iolock := NEW (MUTEX); >>> 132 stop := NEW (Thread.Condition); >>> 133 >>> 134 com := NEW (A, limit := 2000); >>> 135 com.done := NEW (Thread.Condition); >>> 136 com.first := 1; >>> (m3gdb) n >>> 134 com := NEW (A, limit := 2000); >>> (m3gdb) >>> 135 com.done := NEW (Thread.Condition); >>> (m3gdb) >>> 136 com.first := 1; >>> (m3gdb) >>> 137 com.next := 1; >>> (m3gdb) >>> 138 com.last := 1; >>> (m3gdb) >>> 139 t := NEW (T, id := 1, limit := 15); >>> (m3gdb) >>> 141 INC (com.count); >>> (m3gdb) >>> 142 Int (com.count, 5, ": "); >>> (m3gdb) >>> 144 th := Thread.Fork (t); >>> (m3gdb) >>> 145 t.thread := th; >>> (m3gdb) >>> 146 LOCK com DO >>> (m3gdb) >>> 147 Thread.Broadcast (com.done); >>> (m3gdb) >>> 148 END; >>> (m3gdb) >>> 151 LOCK com DO >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> >>> >>> ^C[New process 15851] >>> ^C >>> Program received signal SIGINT, Interrupt. >>> [Switching to process 15851] >>> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) thread apply all bt >>> >>> Thread 11 (process 15851, thread 0x85cc4000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc40b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> Current language: auto; currently c >>> >>> Thread 10 (process 15851, thread 0x84895400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848954b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >>> mutex=0x2dc1d0dc, >>> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >>> uthread_cond.c:431 >>> #3 0x0dc225a7 in _thread_gc (arg=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >>> #4 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #5 0x0000002b in ?? () >>> #6 0x00000000 in ?? () >>> >>> Thread 9 (process 15851, thread 0x84895c00): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x84895cb0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> >>> Thread 8 (process 15851, thread 0x84895000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848950b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 7 (process 15851, thread 0x88197400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881974b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 6 (process 15851, thread 0x88197000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881970b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 5 (process 15851, thread 0x8931f800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f8b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 4 (process 15851, thread 0x8931f000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f0b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 3 (process 15851, thread 0x856ab400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0x2e493 >>> >>> Thread 2 (process 15851): >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >>> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >>> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >>> fname=0x2dc1d0c8 "", lineno=767676616) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >>> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >>> time_remaining=0x7de7fc60) >>> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >>> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >>> rem=0x7de7fc60) >>> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >>> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:740 >>> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:1253 >>> #8 0x1c021a29 in SuspendOthers () >>> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >>> #9 0x1c0086b3 in CollectSomeInStateZero () >>> at ../src/runtime/common/RTCollector.m3:735 >>> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >>> RTCollector.m3:709 >>> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >>> RTCollector.m3:643 >>> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >>> in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:363 >>> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:222 >>> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >>> 35 in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:120 >>> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:110 >>> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #18 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #19 0x0000002b in ?? () >>> #20 0x00000000 in ?? () >>> >>> Thread 1 (process 15851, thread 0x85cc4800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc48b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >>> table. >>> ) at ../Main.m3:153 >>> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:399 >>> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:113 >>> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:122 >>> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >>> at _m3main.mc:4 >>> #11 0x1c00268c in ___start () >>> #12 0x1c0025df in _start () >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >>> >>> I also tried increasing the default stack size; it didn't help. >>> If you want me to test anything, I'll be happy to try it. >>> >>> 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 >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 03:57:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 21:57:57 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Message-ID: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Aha. That is helpful. I have a feeling it might be related to the changes I made to Thread.Fork. But wait, this is code on the RC path right? Which has a different history? On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Do we have any idea when this problem started on OpenBSD? Has it >> always been there? > > No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ > Build #22 on 27. September was the last good one. > Build #23 on 29. September hangs at p007. > >> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >> >>> OK, now this is more interesting. We see that thread 2 is trying >>> to get a GC cycle initiated by stopping the other threads. I >>> am guessing that they are not responding to the thread signal >>> being sent to them. Can you try with @M3debugthreads? > > Jay's server is offline again. I'll try again tomorrow morning. > I could have thought of @M3debugthreads myself :-/ > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 04:04:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 22:04:52 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Message-ID: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> I don't see anything that changed in the RC threads implementation between 9/27 and 9/29. Did something change in the wrappers? Or in the config file for OpenBSD? On 18 Oct 2009, at 21:57, Tony Hosking wrote: > Aha. That is helpful. I have a feeling it might be related to the > changes I made to Thread.Fork. But wait, this is code on the RC > path right? Which has a different history? > > On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Do we have any idea when this problem started on OpenBSD? Has it >>> always been there? >> >> No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >> Build #22 on 27. September was the last good one. >> Build #23 on 29. September hangs at p007. >> >>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>> >>>> OK, now this is more interesting. We see that thread 2 is >>>> trying to get a GC cycle initiated by stopping the other >>>> threads. I am guessing that they are not responding to the >>>> thread signal being sent to them. Can you try with >>>> @M3debugthreads? >> >> Jay's server is offline again. I'll try again tomorrow morning. >> I could have thought of @M3debugthreads myself :-/ >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hendrik at topoi.pooq.com Mon Oct 19 04:15:13 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sun, 18 Oct 2009 22:15:13 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 Message-ID: <20091019021513.GA27389@topoi.pooq.com> m3gdb doesn's seem to install. Is this a known problem? Has it been fixed in CVS and therefore should be OK in RC4? Or is it likely I've done something horribly wrong before now? (I have been doing a number of installations and ununstallations on this machine to provide you with error reports, so it's conceivable that there's some crud around somewhere.) hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog Script started, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit Script done, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik From wagner at elegosoft.com Mon Oct 19 08:16:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 08:16:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091019081656.izo994bns0gk48s0@mail.elegosoft.com> Quoting Tony Hosking : > I don't see anything that changed in the RC threads implementation > between 9/27 and 9/29. Did something change in the wrappers? Or in > the config file for OpenBSD? I just noticed that p007 seems to have been commented out in the test runs before 9/29 :-/ So Jay is probably right, and we have no reliable time frame for the bug. cd ../src/p0/p005 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p006 --- a bit more complicated cd ../src/p0/p006 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p008 --- thread alerts The test itself changed at that time, though. I'll attach the diffs nonetheless. > On 18 Oct 2009, at 21:57, Tony Hosking wrote: > >> Aha. That is helpful. I have a feeling it might be related to the >> changes I made to Thread.Fork. But wait, this is code on the RC >> path right? Which has a different history? Yes, it's in the release branch. I used this command, in case anybody wants to check, too. I slightly extended the time frame to be on the safe side: cvs diff -u -r release_branch_cm3_5_8:2009-09-26 \ -r release_branch_cm3_5_8:2009-09-30 \ m3-libs/*/src m3-sys/*/src > ~/tmp/p007-diffs Jay's system is still offline. I'll try again this evening. Olaf >> On 18 Oct 2009, at 18:59, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>> Do we have any idea when this problem started on OpenBSD? Has it >>>> always been there? >>> >>> No. Look at >>> http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >>> Build #22 on 27. September was the last good one. >>> Build #23 on 29. September hangs at p007. >>> >>>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>>> >>>>> OK, now this is more interesting. We see that thread 2 is >>>>> trying to get a GC cycle initiated by stopping the other >>>>> threads. I am guessing that they are not responding to the >>>>> thread signal being sent to them. Can you try with >>>>> @M3debugthreads? >>> >>> Jay's server is offline again. I'll try again tomorrow morning. >>> I could have thought of @M3debugthreads myself :-/ >>> >>> 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 -------------- ? m3-libs/bitvector/src/BitVector.i3.html ? m3-libs/libm3/src/pickle/ver2/Pickle2.m3+ ? m3-libs/m3core/src/solgnu-thread-diff ? m3-libs/m3core/src/runtime/common/RTLinker.i3+ ? m3-libs/m3core/src/runtime/common/RTLinker.m3+ ? m3-libs/sysutils/src/FSUtils.m3-new ? m3-sys/cm3/src/Makefile.m3.ps ? m3-sys/cm3/src/config/pdiffs ? m3-sys/cminstall/src/config/FreeBSD4x ? m3-sys/cminstall/src/config/pdiffs ? m3-sys/m3middle/src/M3ID.m3-2008-01-29 ? m3-sys/m3middle/src/TWord.m3-xxx ? m3-sys/m3scanner/src/M3Token.i3 ? m3-sys/m3scanner/src/M3Token.m3 ? m3-sys/m3tests-x/src/p0/p100 ? m3-sys/m3tests-x/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests-x/src/p1/p116b ? m3-sys/m3tests-x/src/r0/r003/FreeBSD4 ? m3-sys/m3tests/src/Test.compile ? m3-sys/m3tests/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests/src/p2/FreeBSD4 ? m3-sys/m3tests/src/p2/p223/FreeBSD4 Index: m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -u -u -r1.41.2.1 -r1.41.2.2 --- m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 13 Sep 2009 01:26:41 -0000 1.41.2.1 +++ m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 29 Sep 2009 10:45:40 -0000 1.41.2.2 @@ -460,7 +460,7 @@ (*------------------------------------------------------------ Fork, Join ---*) CONST - MaxIdle = 10; + MaxIdle = 0; VAR (* LL=activeMu *) allThreads : Activation := NIL; (* global list of active threads *) @@ -588,7 +588,7 @@ (* Since we're no longer slotted, we cannot touch traced refs. *) (* remove ourself from the list of active threads *) - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); IF allThreads = me THEN allThreads := me.next; END; me.next.prev := me.prev; me.prev.next := me.next; @@ -636,7 +636,7 @@ act := t.act; act.handle := CreateThread(NIL, stack_size, ThreadBase, act, CREATE_SUSPENDED, ADR(id)); - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); act.next := allThreads; act.prev := allThreads.prev; allThreads.prev.next := act; @@ -801,7 +801,7 @@ VAR me := GetActivation(); BEGIN <*ASSERT me # NIL*> - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); INC (suspend_cnt); IF (suspend_cnt = 1) THEN StopWorld(me) END; Index: m3-sys/cm3/src/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/cm3/src/Main.m3,v retrieving revision 1.19.2.1 retrieving revision 1.19.2.2 diff -u -u -r1.19.2.1 -r1.19.2.2 --- m3-sys/cm3/src/Main.m3 4 Sep 2009 10:26:39 -0000 1.19.2.1 +++ m3-sys/cm3/src/Main.m3 27 Sep 2009 01:15:22 -0000 1.19.2.2 @@ -9,7 +9,7 @@ IMPORT Builder, Dirs, M3Build, M3Options, Makefile, Msg, Utils, WebFile; IMPORT MxConfig(*, M3Config, CMKey, CMCurrent *); (* IMPORT Fmt, Time; only needed for key and expiration check *) -IMPORT Version; +(* IMPORT Version; *) VAR config : TEXT := NIL; Index: m3-sys/m3tests-x/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests-x/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests-x/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests-x/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests-x/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests-x/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. Index: m3-sys/m3tests/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. From mbishop at esoteriq.org Mon Oct 19 21:28:12 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:28:12 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCBDCC.3020102@esoteriq.org> I don't think it's just you. I remember installing m3gdb (or trying to) and having it not work. I'm retrying now to see if I can get it installed. hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From mbishop at esoteriq.org Mon Oct 19 21:35:47 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:35:47 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <4ADCBF93.2040107@esoteriq.org> Yeah just tried installing again, all I get when I run the install.sh is: installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- And that's it. No m3gdb binary anywhere, and the config.log in m3gdb/LINUXLIBC6 directory has no errors. Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package >> m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From rodney.m.bates at cox.net Mon Oct 19 23:24:17 2009 From: rodney.m.bates at cox.net (Rodney M. Bates) Date: Mon, 19 Oct 2009 16:24:17 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCD901.1010509@cox.net> Hmm, I've never seen this. I don't know where install.sh is coming from. The only thing in the repository I can find by that name is inside the copy of readline that is in gdb, and it is clearly not the script in question. I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, with build or buildship, which runs cm3 in m3-sys/m3gdb, which uses m3-sys/m3gdb/src/m3makefile, which contains. starting at line 126: % build the exportable link and man page and export them cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) BindExport ("m3gdb" & EXE) ManPage ("m3gdb","1") Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, a different name than the one installed. This is no doubt a leftover from m3gdb's being derived from gdb. The line 127 above looks like it takes care of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship command it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as expected. Where does install.sh come from? hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From jay.krell at cornell.edu Tue Oct 20 00:52:41 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:52:41 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <687825D2-21DD-40AF-84F0-E79F7B90A469@hotmail.com> Olaf did fix a problem here, something about hardlink vs. copyfile. - Jay (phone) On Oct 19, 2009, at 1:28 PM, Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From jay.krell at cornell.edu Tue Oct 20 00:55:21 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:55:21 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: cd scripts grep install.sh * It is there. - Jay (phone) On Oct 19, 2009, at 3:24 PM, "Rodney M. Bates" wrote: > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. > I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/ > gdb, > a different name than the one installed. This is no doubt a > leftover from > m3gdb's being derived from gdb. The line 127 above looks like it > takes care > of the rename. > For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship > command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, > as expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From wagner at elegosoft.com Tue Oct 20 10:20:23 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 20 Oct 2009 10:20:23 +0200 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> install.sh is the name of the installation script of each of the cm3-bin-ws-* packages. I seem to remember that m3dgb was just linked on several platforms and the actual installation failed. It will probably be fixed in the RC4 archives, as soon as the remaining thread problems are understood. As all the RC3 archives contain these thread problems they were never announced in the usenet. I had hoped that we would be able to replace them by RC4 (and a final release) soon, but matters are still unresolved. Help fixing the remaining thread problems or any of the other open issues at https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+Release+5.8+RC4 and https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+release+5.8 will be appreciated. Olaf Quoting "Rodney M. Bates" : > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. I always use > scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, > a different name than the one installed. This is no doubt a leftover from > m3gdb's being derived from gdb. The line 127 above looks like it takes care > of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the > cm3 -ship command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as > expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik >> >> >> -- 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 rcoleburn at scires.com Tue Oct 20 18:23:04 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 20 Oct 2009 12:23:04 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: <4ADDAADA.1E75.00D7.1@scires.com> Jay: I think we would need to delve deep into the implementation to be able to answer all your questions precisely. I've attached a short paper by Andrew Birrell "Implementing Condition Variables with Semaphores" that you may find interesting / enlightening. My concern about using multiple mutex with same condition lies in the queuing operations. My recollection is that I've always associated only one mutex with a condition variable, but that you can have multiple conditions associated with the same mutex. I will go back and re-read Nelson again--its been a few years. Regards, Randy Coleburn >>> Jay K 10/18/2009 4:16 AM >>> I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ImplementingCVs.pdf Type: application/pdf Size: 155564 bytes Desc: not available URL: From hendrik at topoi.pooq.com Tue Oct 20 18:23:43 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 12:23:43 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> Message-ID: <20091020162343.GA30861@topoi.pooq.com> On Tue, Oct 20, 2009 at 10:20:23AM +0200, Olaf Wagner wrote: > install.sh is the name of the installation script of each of > the > cm3-bin-ws-* packages. I seem to remember that m3dgb was just > linked > on several platforms and the actual installation failed. It > will probably > be fixed in the RC4 archives, as soon as the remaining thread > problems > are understood. > > As all the RC3 archives contain these thread problems they > were never > announced in the usenet. I had hoped that we would be able to > replace > them by RC4 (and a final release) soon, but matters are still > unresolved. It would be useful if there were a working cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3.tgz available, or mayme a cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3a.tgz before a definitive answer to the thread problems. If nothing else, it could tell us if the installation problem with m3gdb has indeed been solved. -- hendrik From hendrik at topoi.pooq.com Tue Oct 20 21:35:12 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 15:35:12 -0400 Subject: [M3devel] cvs size Message-ID: <20091020193512.GA31133@topoi.pooq.com> I just downloaded the entire CVS using cvsup and the control file with the non-comment lines *default host=modula3.elegosoft.com *default base=/farhome/hendrik/cm3/CVSUP/cvs *default prefix=/farhome/hendrik/cm3/CVSUP/cvs *default compress *default preserve and it ended up using a big pile of disk space: #cvsroot hendrik at lovesong:~/cm3/CVSUP$ du -s cvs 1390120 cvs hendrik at lovesong:~/cm3/CVSUP$ Is it likely that I've got everything that the m3 developers might want to have in a distributed versioning system? If so, I'll start experimenting with conversions. -- hendrik From jay.krell at cornell.edu Tue Oct 20 22:26:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 13:26:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ADDAADA.1E75.00D7.1@scires.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: I will read the paper, thanks. The java code demonstrates I believe some important applicable methods. I hope to have a "new" ThreadWin32.m3 "soon". In particular, no per-thread event, no wait lists, and counter to help matching up condition waits and signals. And no giant lock. And stil an efficient mutex with no kernel involvement unless there is contention, could/ might use win32 criticalsection with little extra to avoid recursion, or could use something smaller. And no use of SignalObjectAndWait whose documentation recently changed to remove the atomicity claim! - Jay (phone) On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" wrote: > Jay: > > I think we would need to delve deep into the implementation to be > able to answer all your questions precisely. > > I've attached a short paper by Andrew Birrell "Implementing > Condition Variables with Semaphores" that you may find interesting / > enlightening. > > My concern about using multiple mutex with same condition lies in > the queuing operations. My recollection is that I've always > associated only one mutex with a condition variable, but that you > can have multiple conditions associated with the same mutex. > > I will go back and re-read Nelson again--its been a few years. > > Regards, > Randy Coleburn > > >>> Jay K 10/18/2009 4:16 AM >>> > I still have questions here. > > 1) > Page 93 of the Nelson book: > A monitor consists of some data, a mutex, and zero or more condition > variables. A particular condition variable is always used > in conjunction with the same mutex and its data. > > Doesn't this contradict the point made here? > Does a condition variable always map to the same mutex > or not? > > Or is this merely describing a typical usage pattern that is > a subset of what interface Thread allows? > > > 2) > Can Wait only be satisfied by Signal/Broadcast, > or also just via UnlockMutex? > > > Depending on the answer to these questions, > it seems you can largely merge mutex and condition variable. > > > Condition variable is basically waiting for a > thread to exit a mutex. > Which is very very similar to LockMutex, except > that it doesn't want to take the mutex in the uncontended > case, it actually wants to wait for another thread > to both acquire and release the mutex. > > > I suspect I'm wrong on both of these. > That condition variable really can use multiple mutexes. > That exiting a mutex has no obligation to wake condition variables, > though it might be in good faith to do so...er..if it is > in good faith to not require programmer to use Signal/Broadcast. > > > Thanks, > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 19:13:03 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > That seems a little strange to me but I guess I'll have to keep it > in mind. > > - Jay > > > From: hosking at cs.purdue.edu > To: mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 11:00:36 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > Sorry, yes, you are right of course! The Modula-3 spec (and the > current pthreads-based implementation as also the win32 > implementation I expect) do allow a condition variable being > mediated by different mutexes. My comment was clouded by my > recollection from the pthreads spec that for pthread mutex/cv > behavior for other than 1 mutex per cv is undefined. This confusion > may have been the source of prior bugs in the pthreads threading > implementation, but those bugs are gone now. We support the M3 spec > properly. > > On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: > > --Apple-Mail-96--321618545 > Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes > Content-Transfer-Encoding: 7bit > > In general, it is OK in M3 to associate multiple conditions with the > same mutex. But not vice versa. > > On 8 Oct 2009, at 09:32, Jay K wrote: > > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay > > > --Apple-Mail-96--321618545 > Content-Type: text/html; > charset=US-ASCII > Content-Transfer-Encoding: quoted-printable > > space; = > -webkit-line-break: after-white-space; ">
apple-content-edited=3D"true"> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- > family: = > Helvetica; font-size: 12px; font-style: normal; font-variant: > normal; = > font-weight: normal; letter-spacing: normal; line-height: normal; = > orphans: 2; text-align: auto; text-indent: 0px; text-transform: > none; = > white-space: normal; widows: 2; word-spacing: 0px; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- > adjust: = > auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = > after-white-space; "> style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = > -webkit-line-break: after-white-space; "> span" = > style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">In = > general, it is OK in M3 to associate multiple conditions with the > same = > mutex.  But not vice versa.
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill > Sans'"> class=3D"Apple-style-span" style=3D"font-size: = > medium;">
span>
On 8 Oct > 2009, = > at 09:32, Jay K wrote:

class=3D"Apple-interchange-newline">
class=3D"Apple-style-span" style=3D"border-collapse: separate; > color: = > rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: = > normal; font-variant: normal; font-weight: normal; letter-spacing: = > normal; line-height: normal; orphans: 2; text-align: auto; text- > indent: = > 0px; text-transform: none; white-space: normal; widows: 2; word- > spacing: = > 0px; -webkit-border-horizontal-spacing: 0px; = > -webkit-border-vertical-spacing: 0px; = > -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = > auto; -webkit-text-stroke-width: 0px; ">
style=3D"font-size: 10pt; font-family: Verdana; ">condition = > variables/win32
 

So..one way I think about condition = > variables
is that you want to be woken when someone > else
leaves = > the mutex that guards the data that you are dealing with.
You > want to = > know when another thread modifies the data.
(If you have a = > reader/writer lock, you only want to be
woken when someone exits > a = > write.)
 

Now, if you consider a producer/consumer = > queue.
There are two interesting occurences.
Transitions from = > empty to non-empty
and transitions from full to non-full = > (optionally,
if it is fixed size).
 

Consumers > wait = > for empty to non-empty.
Consumers signal full to = > non-full.
Producers wait for full to non-full.
Producers > signal = > non-empty to empty.
 

So, in this case, one mutex is = > likely used with with two condition = > variables.
 

But, what if we take a simplifying = > deoptimization and assume that a condition
variable is only ever = > associated with one mutex?
Anyone existing that mutex wakes up > anyone = > waiting on any condition associated with it?
Like, a condition = > variable I think becomes stateless and everything is
about the = > mutex?
 
 
What is the = > downside?
 

Condition variables are allowed to have = > spurious wakeups.
This would "just" increase them. Too = > much?
 

So, therefore, what would be wrong with the = > following design?
 a mutex contains an event class=3D"Apple-converted-space"> 
 and a number > of = > waiters, zero or non-zero class=3D"Apple-converted-space"> 
 if a mutex is = > exiting with a non-zero number of waiters, signal the = > event
 

To handle Signal vs. Broadcast
method = > 1:
 the number of waiters might be interlocked
 the = > woken would decrement it
 if it isn't zero, signal the event = > again
 

method 2:
 the number of waiters is > both = > an integer and a semaphore
 and the lock exiter raises the = > semaphore by the the integer

 
method 3:
 it > is = > not an auto-reset event and there is a count
  and when the = > count goes to 0, reset the event
 I think in this case you > have = > to maintain a "wait generation" class=3D"Apple-converted-space"> 
 so that new = > waiters don't prevent the count from ever hitting 0.
 I > think = > this #3 is what Java might be doing, and is described here:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation > Count = > Solution"

 
also:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = > Solution
Evaluating the SetEvent Solution
Incorrectness -- > class=3D"Apple-converted-space"> 
 

Is > that = > incorrect case really necessarily incorrect?
It seems unfair, > since = > first waiter should be first woken, but..?

 
Am I > missing = > something? A lot?
 

 - = > Jay

= > > --Apple-Mail-96--321618545-- > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Tue Oct 20 23:05:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 20 Oct 2009 17:05:52 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Should we not also consider fixing any problems in the existing Win32 threading? That paper does give a very straightforward recipe for building Moulda-3 style mutex/condition semantics using semaphores, which Windows does provide. On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > I will read the paper, thanks. > > The java code demonstrates I believe some important applicable > methods. I hope to have a "new" ThreadWin32.m3 "soon". In > particular, no per-thread event, no wait lists, and counter to help > matching up condition waits and signals. And no giant lock. And stil > an efficient mutex with no kernel involvement unless there is > contention, could/might use win32 criticalsection with little extra > to avoid recursion, or could use something smaller. And no use of > SignalObjectAndWait whose documentation recently changed to remove > the atomicity claim! > > - Jay (phone) > > On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" > wrote: > >> Jay: >> >> I think we would need to delve deep into the implementation to be >> able to answer all your questions precisely. >> >> I've attached a short paper by Andrew Birrell "Implementing >> Condition Variables with Semaphores" that you may find >> interesting / enlightening. >> >> My concern about using multiple mutex with same condition lies in >> the queuing operations. My recollection is that I've always >> associated only one mutex with a condition variable, but that you >> can have multiple conditions associated with the same mutex. >> >> I will go back and re-read Nelson again--its been a few years. >> >> Regards, >> Randy Coleburn >> >> >>> Jay K 10/18/2009 4:16 AM >>> >> I still have questions here. >> >> 1) >> Page 93 of the Nelson book: >> A monitor consists of some data, a mutex, and zero or more condition >> variables. A particular condition variable is always used >> in conjunction with the same mutex and its data. >> >> Doesn't this contradict the point made here? >> Does a condition variable always map to the same mutex >> or not? >> >> Or is this merely describing a typical usage pattern that is >> a subset of what interface Thread allows? >> >> >> 2) >> Can Wait only be satisfied by Signal/Broadcast, >> or also just via UnlockMutex? >> >> >> Depending on the answer to these questions, >> it seems you can largely merge mutex and condition variable. >> >> >> Condition variable is basically waiting for a >> thread to exit a mutex. >> Which is very very similar to LockMutex, except >> that it doesn't want to take the mutex in the uncontended >> case, it actually wants to wait for another thread >> to both acquire and release the mutex. >> >> >> I suspect I'm wrong on both of these. >> That condition variable really can use multiple mutexes. >> That exiting a mutex has no obligation to wake condition variables, >> though it might be in good faith to do so...er..if it is >> in good faith to not require programmer to use Signal/Broadcast. >> >> >> Thanks, >> - Jay >> >> >> >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 19:13:03 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> That seems a little strange to me but I guess I'll have to keep it >> in mind. >> >> - Jay >> >> >> From: hosking at cs.purdue.edu >> To: mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 11:00:36 -0400 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> Sorry, yes, you are right of course! The Modula-3 spec (and the >> current pthreads-based implementation as also the win32 >> implementation I expect) do allow a condition variable being >> mediated by different mutexes. My comment was clouded by my >> recollection from the pthreads spec that for pthread mutex/cv >> behavior for other than 1 mutex per cv is undefined. This >> confusion may have been the source of prior bugs in the pthreads >> threading implementation, but those bugs are gone now. We support >> the M3 spec properly. >> >> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >> >> Why can't you use the same condition variable with different mutexes? >> >> This is dynamic, up to the M3 programmer, no? >> >> Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >> condition variables/win32 >> >> >> So..one way I think about condition variables >> is that you want to be woken when someone else >> leaves the mutex that guards the data that you are dealing with. >> You want to know when another thread modifies the data. >> (If you have a reader/writer lock, you only want to be >> woken when someone exits a write.) >> >> >> Now, if you consider a producer/consumer queue. >> There are two interesting occurences. >> Transitions from empty to non-empty >> and transitions from full to non-full (optionally, >> if it is fixed size). >> >> >> Consumers wait for empty to non-empty. >> Consumers signal full to non-full. >> Producers wait for full to non-full. >> Producers signal non-empty to empty. >> >> >> So, in this case, one mutex is likely used with with two condition >> variables. >> >> >> But, what if we take a simplifying deoptimization and assume that a >> condition >> variable is only ever associated with one mutex? >> Anyone existing that mutex wakes up anyone waiting on any condition >> associated with it? >> Like, a condition variable I think becomes stateless and everything >> is >> about the mutex? >> >> >> What is the downside? >> >> >> Condition variables are allowed to have spurious wakeups. >> This would "just" increase them. Too much? >> >> >> So, therefore, what would be wrong with the following design? >> a mutex contains an event >> and a number of waiters, zero or non-zero >> if a mutex is exiting with a non-zero number of waiters, signal the >> event >> >> >> To handle Signal vs. Broadcast >> method 1: >> the number of waiters might be interlocked >> the woken would decrement it >> if it isn't zero, signal the event again >> >> >> method 2: >> the number of waiters is both an integer and a semaphore >> and the lock exiter raises the semaphore by the the integer >> >> >> method 3: >> it is not an auto-reset event and there is a count >> and when the count goes to 0, reset the event >> I think in this case you have to maintain a "wait generation" >> so that new waiters don't prevent the count from ever hitting 0. >> I think this #3 is what Java might be doing, and is described here: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> "3.3. The Generation Count Solution" >> >> >> also: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> 3.2. The SetEvent Solution >> Evaluating the SetEvent Solution >> Incorrectness -- >> >> >> Is that incorrect case really necessarily incorrect? >> It seems unfair, since first waiter should be first woken, but..? >> >> >> Am I missing something? A lot? >> >> >> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>
On 8 Oct >> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:04:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:04:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Also removing our giant lock would be good either way, if possible. - Jay (phone) On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > Something doesn't add up. I'll have to reread. The paper I think > assumes one mutex per condition, also clearly is talking about "our > library". I'll need to compare the paper and the library. Could be > the paper is wrong. A lot of literature here depends on atomic > SignalAndWait but the docs just changed and no longer claim atomicity. > > - Jay (phone) > > On Oct 20, 2009, at 2:05 PM, Tony Hosking > wrote: > >> Should we not also consider fixing any problems in the existing >> Win32 threading? That paper does give a very straightforward >> recipe for building Moulda-3 style mutex/condition semantics using >> semaphores, which Windows does provide. >> >> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >> >>> I will read the paper, thanks. >>> >>> The java code demonstrates I believe some important applicable >>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>> particular, no per-thread event, no wait lists, and counter to >>> help matching up condition waits and signals. And no giant lock. >>> And stil an efficient mutex with no kernel involvement unless >>> there is contention, could/might use win32 criticalsection with >>> little extra to avoid recursion, or could use something smaller. >>> And no use of SignalObjectAndWait whose documentation recently >>> changed to remove the atomicity claim! >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>> wrote: >>> >>>> Jay: >>>> >>>> I think we would need to delve deep into the implementation to be >>>> able to answer all your questions precisely. >>>> >>>> I've attached a short paper by Andrew Birrell "Implementing >>>> Condition Variables with Semaphores" that you may find >>>> interesting / enlightening. >>>> >>>> My concern about using multiple mutex with same condition lies in >>>> the queuing operations. My recollection is that I've always >>>> associated only one mutex with a condition variable, but that you >>>> can have multiple conditions associated with the same mutex. >>>> >>>> I will go back and re-read Nelson again--its been a few years. >>>> >>>> Regards, >>>> Randy Coleburn >>>> >>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>> I still have questions here. >>>> >>>> 1) >>>> Page 93 of the Nelson book: >>>> A monitor consists of some data, a mutex, and zero or more >>>> condition >>>> variables. A particular condition variable is always used >>>> in conjunction with the same mutex and its data. >>>> >>>> Doesn't this contradict the point made here? >>>> Does a condition variable always map to the same mutex >>>> or not? >>>> >>>> Or is this merely describing a typical usage pattern that is >>>> a subset of what interface Thread allows? >>>> >>>> >>>> 2) >>>> Can Wait only be satisfied by Signal/Broadcast, >>>> or also just via UnlockMutex? >>>> >>>> >>>> Depending on the answer to these questions, >>>> it seems you can largely merge mutex and condition variable. >>>> >>>> >>>> Condition variable is basically waiting for a >>>> thread to exit a mutex. >>>> Which is very very similar to LockMutex, except >>>> that it doesn't want to take the mutex in the uncontended >>>> case, it actually wants to wait for another thread >>>> to both acquire and release the mutex. >>>> >>>> >>>> I suspect I'm wrong on both of these. >>>> That condition variable really can use multiple mutexes. >>>> That exiting a mutex has no obligation to wake condition variables, >>>> though it might be in good faith to do so...er..if it is >>>> in good faith to not require programmer to use Signal/Broadcast. >>>> >>>> >>>> Thanks, >>>> - Jay >>>> >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> That seems a little strange to me but I guess I'll have to keep >>>> it in mind. >>>> >>>> - Jay >>>> >>>> >>>> From: hosking at cs.purdue.edu >>>> To: mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>> current pthreads-based implementation as also the win32 >>>> implementation I expect) do allow a condition variable being >>>> mediated by different mutexes. My comment was clouded by my >>>> recollection from the pthreads spec that for pthread mutex/cv >>>> behavior for other than 1 mutex per cv is undefined. This >>>> confusion may have been the source of prior bugs in the pthreads >>>> threading implementation, but those bugs are gone now. We >>>> support the M3 spec properly. >>>> >>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>> >>>> Why can't you use the same condition variable with different >>>> mutexes? >>>> >>>> This is dynamic, up to the M3 programmer, no? >>>> >>>> Tony Hosking writes: >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> In general, it is OK in M3 to associate multiple conditions with >>>> the >>>> same mutex. But not vice versa. >>>> >>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>> >>>> condition variables/win32 >>>> >>>> >>>> So..one way I think about condition variables >>>> is that you want to be woken when someone else >>>> leaves the mutex that guards the data that you are dealing with. >>>> You want to know when another thread modifies the data. >>>> (If you have a reader/writer lock, you only want to be >>>> woken when someone exits a write.) >>>> >>>> >>>> Now, if you consider a producer/consumer queue. >>>> There are two interesting occurences. >>>> Transitions from empty to non-empty >>>> and transitions from full to non-full (optionally, >>>> if it is fixed size). >>>> >>>> >>>> Consumers wait for empty to non-empty. >>>> Consumers signal full to non-full. >>>> Producers wait for full to non-full. >>>> Producers signal non-empty to empty. >>>> >>>> >>>> So, in this case, one mutex is likely used with with two condition >>>> variables. >>>> >>>> >>>> But, what if we take a simplifying deoptimization and assume that a >>>> condition >>>> variable is only ever associated with one mutex? >>>> Anyone existing that mutex wakes up anyone waiting on any condition >>>> associated with it? >>>> Like, a condition variable I think becomes stateless and >>>> everything is >>>> about the mutex? >>>> >>>> >>>> What is the downside? >>>> >>>> >>>> Condition variables are allowed to have spurious wakeups. >>>> This would "just" increase them. Too much? >>>> >>>> >>>> So, therefore, what would be wrong with the following design? >>>> a mutex contains an event >>>> and a number of waiters, zero or non-zero >>>> if a mutex is exiting with a non-zero number of waiters, signal the >>>> event >>>> >>>> >>>> To handle Signal vs. Broadcast >>>> method 1: >>>> the number of waiters might be interlocked >>>> the woken would decrement it >>>> if it isn't zero, signal the event again >>>> >>>> >>>> method 2: >>>> the number of waiters is both an integer and a semaphore >>>> and the lock exiter raises the semaphore by the the integer >>>> >>>> >>>> method 3: >>>> it is not an auto-reset event and there is a count >>>> and when the count goes to 0, reset the event >>>> I think in this case you have to maintain a "wait generation" >>>> so that new waiters don't prevent the count from ever hitting 0. >>>> I think this #3 is what Java might be doing, and is described here: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> "3.3. The Generation Count Solution" >>>> >>>> >>>> also: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> 3.2. The SetEvent Solution >>>> Evaluating the SetEvent Solution >>>> Incorrectness -- >>>> >>>> >>>> Is that incorrect case really necessarily incorrect? >>>> It seems unfair, since first waiter should be first woken, but..? >>>> >>>> >>>> Am I missing something? A lot? >>>> >>>> >>>> - Jay >>>> >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style-span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">In = >>>> general, it is OK in M3 to associate multiple conditions with the >>>> same = >>>> mutex.  But not vice versa.
>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">>>> class=3D"Apple-style-span" style=3D"font-size: = >>>> medium;">
>>> span>>>>
On 8 Oct >>>> 2009, = >>>> at 09:32, Jay K wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0px; ">
>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>> variables/win32
 

So..one way I think about >>>> condition = >>>> variables
is that you want to be woken when someone >>>> else
leaves = >>>> the mutex that guards the data that you are dealing with.
You >>>> want to = >>>> know when another thread modifies the data.
(If you have a = >>>> reader/writer lock, you only want to be
woken when someone >>>> exits a = >>>> write.)
 

Now, if you consider a producer/consumer = >>>> queue.
There are two interesting occurences.
Transitions >>>> from = >>>> empty to non-empty
and transitions from full to non-full = >>>> (optionally,
if it is fixed size).
 

Consumers >>>> wait = >>>> for empty to non-empty.
Consumers signal full to = >>>> non-full.
Producers wait for full to non-full.
Producers >>>> signal = >>>> non-empty to empty.
 

So, in this case, one mutex >>>> is = >>>> likely used with with two condition = >>>> variables.
 

But, what if we take a simplifying = >>>> deoptimization and assume that a condition
variable is only >>>> ever = >>>> associated with one mutex?
Anyone existing that mutex wakes up >>>> anyone = >>>> waiting on any condition associated with it?
Like, a condition = >>>> variable I think becomes stateless and everything is
about the = >>>> mutex?
 
 
What is the = >>>> downside?
 

Condition variables are allowed to >>>> have = >>>> spurious wakeups.
This would "just" increase them. Too = >>>> much?
 

So, therefore, what would be wrong with >>>> the = >>>> following design?
 a mutex contains an event>>> class=3D"Apple-converted-space"> 
 and a >>>> number of = >>>> waiters, zero or non-zero>>> class=3D"Apple-converted-space"> 
 if a mutex >>>> is = >>>> exiting with a non-zero number of waiters, signal the = >>>> event
 

To handle Signal vs. Broadcast
method = >>>> 1:
 the number of waiters might be >>>> interlocked
 the = >>>> woken would decrement it
 if it isn't zero, signal the >>>> event = >>>> again
 

method 2:
 the number of waiters >>>> is both = >>>> an integer and a semaphore
 and the lock exiter raises >>>> the = >>>> semaphore by the the integer

 
method >>>> 3:
 it is = >>>> not an auto-reset event and there is a count
  and when >>>> the = >>>> count goes to 0, reset the event
 I think in this case >>>> you have = >>>> to maintain a "wait generation">>> class=3D"Apple-converted-space"> 
 so that >>>> new = >>>> waiters don't prevent the count from ever hitting 0.
 I >>>> think = >>>> this #3 is what Java might be doing, and is described here:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>> Generation Count = >>>> Solution"

 
also:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>> >>> class=3D"Apple-converted-space"> 
 

Is >>>> that = >>>> incorrect case really necessarily incorrect?
It seems unfair, >>>> since = >>>> first waiter should be first woken, but..?

 
Am I >>>> missing = >>>> something? A lot?
 

 - = >>>> Jay

= >>>> >>>> --Apple-Mail-96--321618545-- >>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 02:58:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 17:58:28 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: Something doesn't add up. I'll have to reread. The paper I think assumes one mutex per condition, also clearly is talking about "our library". I'll need to compare the paper and the library. Could be the paper is wrong. A lot of literature here depends on atomic SignalAndWait but the docs just changed and no longer claim atomicity. - Jay (phone) On Oct 20, 2009, at 2:05 PM, Tony Hosking wrote: > Should we not also consider fixing any problems in the existing > Win32 threading? That paper does give a very straightforward recipe > for building Moulda-3 style mutex/condition semantics using > semaphores, which Windows does provide. > > On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > >> I will read the paper, thanks. >> >> The java code demonstrates I believe some important applicable >> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >> particular, no per-thread event, no wait lists, and counter to help >> matching up condition waits and signals. And no giant lock. And >> stil an efficient mutex with no kernel involvement unless there is >> contention, could/might use win32 criticalsection with little extra >> to avoid recursion, or could use something smaller. And no use of >> SignalObjectAndWait whose documentation recently changed to remove >> the atomicity claim! >> >> - Jay (phone) >> >> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >> wrote: >> >>> Jay: >>> >>> I think we would need to delve deep into the implementation to be >>> able to answer all your questions precisely. >>> >>> I've attached a short paper by Andrew Birrell "Implementing >>> Condition Variables with Semaphores" that you may find >>> interesting / enlightening. >>> >>> My concern about using multiple mutex with same condition lies in >>> the queuing operations. My recollection is that I've always >>> associated only one mutex with a condition variable, but that you >>> can have multiple conditions associated with the same mutex. >>> >>> I will go back and re-read Nelson again--its been a few years. >>> >>> Regards, >>> Randy Coleburn >>> >>> >>> Jay K 10/18/2009 4:16 AM >>> >>> I still have questions here. >>> >>> 1) >>> Page 93 of the Nelson book: >>> A monitor consists of some data, a mutex, and zero or more condition >>> variables. A particular condition variable is always used >>> in conjunction with the same mutex and its data. >>> >>> Doesn't this contradict the point made here? >>> Does a condition variable always map to the same mutex >>> or not? >>> >>> Or is this merely describing a typical usage pattern that is >>> a subset of what interface Thread allows? >>> >>> >>> 2) >>> Can Wait only be satisfied by Signal/Broadcast, >>> or also just via UnlockMutex? >>> >>> >>> Depending on the answer to these questions, >>> it seems you can largely merge mutex and condition variable. >>> >>> >>> Condition variable is basically waiting for a >>> thread to exit a mutex. >>> Which is very very similar to LockMutex, except >>> that it doesn't want to take the mutex in the uncontended >>> case, it actually wants to wait for another thread >>> to both acquire and release the mutex. >>> >>> >>> I suspect I'm wrong on both of these. >>> That condition variable really can use multiple mutexes. >>> That exiting a mutex has no obligation to wake condition variables, >>> though it might be in good faith to do so...er..if it is >>> in good faith to not require programmer to use Signal/Broadcast. >>> >>> >>> Thanks, >>> - Jay >>> >>> >>> >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> That seems a little strange to me but I guess I'll have to keep it >>> in mind. >>> >>> - Jay >>> >>> >>> From: hosking at cs.purdue.edu >>> To: mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>> current pthreads-based implementation as also the win32 >>> implementation I expect) do allow a condition variable being >>> mediated by different mutexes. My comment was clouded by my >>> recollection from the pthreads spec that for pthread mutex/cv >>> behavior for other than 1 mutex per cv is undefined. This >>> confusion may have been the source of prior bugs in the pthreads >>> threading implementation, but those bugs are gone now. We support >>> the M3 spec properly. >>> >>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>> >>> Why can't you use the same condition variable with different >>> mutexes? >>> >>> This is dynamic, up to the M3 programmer, no? >>> >>> Tony Hosking writes: >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> In general, it is OK in M3 to associate multiple conditions with the >>> same mutex. But not vice versa. >>> >>> On 8 Oct 2009, at 09:32, Jay K wrote: >>> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >>> >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> style-span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">In = >>> general, it is OK in M3 to associate multiple conditions with the >>> same = >>> mutex.  But not vice versa.
>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">>> class=3D"Apple-style-span" style=3D"font-size: = >>> medium;">
>> span>>>
On 8 Oct >>> 2009, = >>> at 09:32, Jay K wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>> style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0px; ">
>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>> variables/win32
 

So..one way I think about >>> condition = >>> variables
is that you want to be woken when someone >>> else
leaves = >>> the mutex that guards the data that you are dealing with.
You >>> want to = >>> know when another thread modifies the data.
(If you have a = >>> reader/writer lock, you only want to be
woken when someone >>> exits a = >>> write.)
 

Now, if you consider a producer/consumer = >>> queue.
There are two interesting occurences.
Transitions >>> from = >>> empty to non-empty
and transitions from full to non-full = >>> (optionally,
if it is fixed size).
 

Consumers >>> wait = >>> for empty to non-empty.
Consumers signal full to = >>> non-full.
Producers wait for full to non-full.
Producers >>> signal = >>> non-empty to empty.
 

So, in this case, one mutex >>> is = >>> likely used with with two condition = >>> variables.
 

But, what if we take a simplifying = >>> deoptimization and assume that a condition
variable is only >>> ever = >>> associated with one mutex?
Anyone existing that mutex wakes up >>> anyone = >>> waiting on any condition associated with it?
Like, a condition = >>> variable I think becomes stateless and everything is
about the = >>> mutex?
 
 
What is the = >>> downside?
 

Condition variables are allowed to have = >>> spurious wakeups.
This would "just" increase them. Too = >>> much?
 

So, therefore, what would be wrong with the = >>> following design?
 a mutex contains an event>> class=3D"Apple-converted-space"> 
 and a >>> number of = >>> waiters, zero or non-zero>> class=3D"Apple-converted-space"> 
 if a mutex >>> is = >>> exiting with a non-zero number of waiters, signal the = >>> event
 

To handle Signal vs. Broadcast
method = >>> 1:
 the number of waiters might be >>> interlocked
 the = >>> woken would decrement it
 if it isn't zero, signal the >>> event = >>> again
 

method 2:
 the number of waiters is >>> both = >>> an integer and a semaphore
 and the lock exiter raises the = >>> semaphore by the the integer

 
method >>> 3:
 it is = >>> not an auto-reset event and there is a count
  and when >>> the = >>> count goes to 0, reset the event
 I think in this case you >>> have = >>> to maintain a "wait generation">> class=3D"Apple-converted-space"> 
 so that new = >>> waiters don't prevent the count from ever hitting 0.
 I >>> think = >>> this #3 is what Java might be doing, and is described here:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >>> Count = >>> Solution"

 
also:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>> >> class=3D"Apple-converted-space"> 
 

Is >>> that = >>> incorrect case really necessarily incorrect?
It seems unfair, >>> since = >>> first waiter should be first woken, but..?

 
Am I >>> missing = >>> something? A lot?
 

 - = >>> Jay

= >>> >>> --Apple-Mail-96--321618545-- >>> >>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:19:48 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:19:48 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: Also it may be possible/easy to remove the need to create the thread in Modula-3, though dllmain could also address that. - Jay (phone) On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > Also removing our giant lock would be good either way, if possible. > > - Jay (phone) > > On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > >> Something doesn't add up. I'll have to reread. The paper I think >> assumes one mutex per condition, also clearly is talking about "our >> library". I'll need to compare the paper and the library. Could be >> the paper is wrong. A lot of literature here depends on atomic >> SignalAndWait but the docs just changed and no longer claim >> atomicity. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 2:05 PM, Tony Hosking >> wrote: >> >>> Should we not also consider fixing any problems in the existing >>> Win32 threading? That paper does give a very straightforward >>> recipe for building Moulda-3 style mutex/condition semantics using >>> semaphores, which Windows does provide. >>> >>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>> >>>> I will read the paper, thanks. >>>> >>>> The java code demonstrates I believe some important applicable >>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>> particular, no per-thread event, no wait lists, and counter to >>>> help matching up condition waits and signals. And no giant lock. >>>> And stil an efficient mutex with no kernel involvement unless >>>> there is contention, could/might use win32 criticalsection with >>>> little extra to avoid recursion, or could use something smaller. >>>> And no use of SignalObjectAndWait whose documentation recently >>>> changed to remove the atomicity claim! >>>> >>>> - Jay (phone) >>>> >>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> wrote: >>>> >>>>> Jay: >>>>> >>>>> I think we would need to delve deep into the implementation to >>>>> be able to answer all your questions precisely. >>>>> >>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>> Condition Variables with Semaphores" that you may find >>>>> interesting / enlightening. >>>>> >>>>> My concern about using multiple mutex with same condition lies >>>>> in the queuing operations. My recollection is that I've always >>>>> associated only one mutex with a condition variable, but that >>>>> you can have multiple conditions associated with the same mutex. >>>>> >>>>> I will go back and re-read Nelson again--its been a few years. >>>>> >>>>> Regards, >>>>> Randy Coleburn >>>>> >>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>> I still have questions here. >>>>> >>>>> 1) >>>>> Page 93 of the Nelson book: >>>>> A monitor consists of some data, a mutex, and zero or more >>>>> condition >>>>> variables. A particular condition variable is always used >>>>> in conjunction with the same mutex and its data. >>>>> >>>>> Doesn't this contradict the point made here? >>>>> Does a condition variable always map to the same mutex >>>>> or not? >>>>> >>>>> Or is this merely describing a typical usage pattern that is >>>>> a subset of what interface Thread allows? >>>>> >>>>> >>>>> 2) >>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>> or also just via UnlockMutex? >>>>> >>>>> >>>>> Depending on the answer to these questions, >>>>> it seems you can largely merge mutex and condition variable. >>>>> >>>>> >>>>> Condition variable is basically waiting for a >>>>> thread to exit a mutex. >>>>> Which is very very similar to LockMutex, except >>>>> that it doesn't want to take the mutex in the uncontended >>>>> case, it actually wants to wait for another thread >>>>> to both acquire and release the mutex. >>>>> >>>>> >>>>> I suspect I'm wrong on both of these. >>>>> That condition variable really can use multiple mutexes. >>>>> That exiting a mutex has no obligation to wake condition >>>>> variables, >>>>> though it might be in good faith to do so...er..if it is >>>>> in good faith to not require programmer to use Signal/Broadcast. >>>>> >>>>> >>>>> Thanks, >>>>> - Jay >>>>> >>>>> >>>>> >>>>> From: jay.krell at cornell.edu >>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> That seems a little strange to me but I guess I'll have to keep >>>>> it in mind. >>>>> >>>>> - Jay >>>>> >>>>> >>>>> From: hosking at cs.purdue.edu >>>>> To: mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>>> current pthreads-based implementation as also the win32 >>>>> implementation I expect) do allow a condition variable being >>>>> mediated by different mutexes. My comment was clouded by my >>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>> behavior for other than 1 mutex per cv is undefined. This >>>>> confusion may have been the source of prior bugs in the pthreads >>>>> threading implementation, but those bugs are gone now. We >>>>> support the M3 spec properly. >>>>> >>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>> >>>>> Why can't you use the same condition variable with different >>>>> mutexes? >>>>> >>>>> This is dynamic, up to the M3 programmer, no? >>>>> >>>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> In general, it is OK in M3 to associate multiple conditions with >>>>> the >>>>> same mutex. But not vice versa. >>>>> >>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>> >>>>> condition variables/win32 >>>>> >>>>> >>>>> So..one way I think about condition variables >>>>> is that you want to be woken when someone else >>>>> leaves the mutex that guards the data that you are dealing with. >>>>> You want to know when another thread modifies the data. >>>>> (If you have a reader/writer lock, you only want to be >>>>> woken when someone exits a write.) >>>>> >>>>> >>>>> Now, if you consider a producer/consumer queue. >>>>> There are two interesting occurences. >>>>> Transitions from empty to non-empty >>>>> and transitions from full to non-full (optionally, >>>>> if it is fixed size). >>>>> >>>>> >>>>> Consumers wait for empty to non-empty. >>>>> Consumers signal full to non-full. >>>>> Producers wait for full to non-full. >>>>> Producers signal non-empty to empty. >>>>> >>>>> >>>>> So, in this case, one mutex is likely used with with two condition >>>>> variables. >>>>> >>>>> >>>>> But, what if we take a simplifying deoptimization and assume >>>>> that a >>>>> condition >>>>> variable is only ever associated with one mutex? >>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>> condition >>>>> associated with it? >>>>> Like, a condition variable I think becomes stateless and >>>>> everything is >>>>> about the mutex? >>>>> >>>>> >>>>> What is the downside? >>>>> >>>>> >>>>> Condition variables are allowed to have spurious wakeups. >>>>> This would "just" increase them. Too much? >>>>> >>>>> >>>>> So, therefore, what would be wrong with the following design? >>>>> a mutex contains an event >>>>> and a number of waiters, zero or non-zero >>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>> the >>>>> event >>>>> >>>>> >>>>> To handle Signal vs. Broadcast >>>>> method 1: >>>>> the number of waiters might be interlocked >>>>> the woken would decrement it >>>>> if it isn't zero, signal the event again >>>>> >>>>> >>>>> method 2: >>>>> the number of waiters is both an integer and a semaphore >>>>> and the lock exiter raises the semaphore by the the integer >>>>> >>>>> >>>>> method 3: >>>>> it is not an auto-reset event and there is a count >>>>> and when the count goes to 0, reset the event >>>>> I think in this case you have to maintain a "wait generation" >>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>> I think this #3 is what Java might be doing, and is described >>>>> here: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> "3.3. The Generation Count Solution" >>>>> >>>>> >>>>> also: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> 3.2. The SetEvent Solution >>>>> Evaluating the SetEvent Solution >>>>> Incorrectness -- >>>>> >>>>> >>>>> Is that incorrect case really necessarily incorrect? >>>>> It seems unfair, since first waiter should be first woken, but..? >>>>> >>>>> >>>>> Am I missing something? A lot? >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/html; >>>>> charset=US-ASCII >>>>> Content-Transfer-Encoding: quoted-printable >>>>> >>>>> >>>> space; = >>>>> -webkit-line-break: after-white-space; ">
>>>> apple-content-edited=3D"true">>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>> family: = >>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>> normal; = >>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>> normal; = >>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>> none; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0; ">
>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>> after-white-space; ">>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">
>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>> -webkit-line-break: after-white-space; ">>>>> style-span" = >>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">In = >>>>> general, it is OK in M3 to associate multiple conditions with >>>>> the same = >>>>> mutex.  But not vice versa.
>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>> medium;">
>>>> span>>>>>
On 8 Oct >>>>> 2009, = >>>>> at 09:32, Jay K wrote:

>>>> class=3D"Apple-interchange-newline">
>>>> type=3D"cite">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>> color: = >>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>> style: = >>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>> spacing: = >>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>> indent: = >>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>> spacing: = >>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>> -webkit-border-vertical-spacing: 0px; = >>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>> variables/win32
 

So..one way I think about >>>>> condition = >>>>> variables
is that you want to be woken when someone >>>>> else
leaves = >>>>> the mutex that guards the data that you are dealing with.
You >>>>> want to = >>>>> know when another thread modifies the data.
(If you have a = >>>>> reader/writer lock, you only want to be
woken when someone >>>>> exits a = >>>>> write.)
 

Now, if you consider a producer/ >>>>> consumer = >>>>> queue.
There are two interesting occurences.
Transitions >>>>> from = >>>>> empty to non-empty
and transitions from full to non-full = >>>>> (optionally,
if it is fixed size).
 

Consumers >>>>> wait = >>>>> for empty to non-empty.
Consumers signal full to = >>>>> non-full.
Producers wait for full to non-full.
Producers >>>>> signal = >>>>> non-empty to empty.
 

So, in this case, one mutex >>>>> is = >>>>> likely used with with two condition = >>>>> variables.
 

But, what if we take a simplifying = >>>>> deoptimization and assume that a condition
variable is only >>>>> ever = >>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>> up anyone = >>>>> waiting on any condition associated with it?
Like, a >>>>> condition = >>>>> variable I think becomes stateless and everything is
about >>>>> the = >>>>> mutex?
 
 
What is the = >>>>> downside?
 

Condition variables are allowed to >>>>> have = >>>>> spurious wakeups.
This would "just" increase them. Too = >>>>> much?
 

So, therefore, what would be wrong with >>>>> the = >>>>> following design?
 a mutex contains an event>>>> class=3D"Apple-converted-space"> 
 and a >>>>> number of = >>>>> waiters, zero or non-zero>>>> class=3D"Apple-converted-space"> 
 if a >>>>> mutex is = >>>>> exiting with a non-zero number of waiters, signal the = >>>>> event
 

To handle Signal vs. Broadcast
method = >>>>> 1:
 the number of waiters might be >>>>> interlocked
 the = >>>>> woken would decrement it
 if it isn't zero, signal the >>>>> event = >>>>> again
 

method 2:
 the number of waiters >>>>> is both = >>>>> an integer and a semaphore
 and the lock exiter raises >>>>> the = >>>>> semaphore by the the integer

 
method >>>>> 3:
 it is = >>>>> not an auto-reset event and there is a count
  and when >>>>> the = >>>>> count goes to 0, reset the event
 I think in this case >>>>> you have = >>>>> to maintain a "wait generation">>>> class=3D"Apple-converted-space"> 
 so that >>>>> new = >>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>> think = >>>>> this #3 is what Java might be doing, and is described >>>>> here:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>> Generation Count = >>>>> Solution"

 
also:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>> >>>> class=3D"Apple-converted-space"> >>>> span>
 

Is that = >>>>> incorrect case really necessarily incorrect?
It seems unfair, >>>>> since = >>>>> first waiter should be first woken, but..?

 
Am I >>>>> missing = >>>>> something? A lot?
 

 - = >>>>> Jay

= >>>>> >>>>> --Apple-Mail-96--321618545-- >>>>> >>>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 04:35:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 19:35:37 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: While the paper states an assumption of one mutex per condition, it isn't clear that the code depends on it. The paper does not discuss alert but that isn't clearly a problem. Regarding a rewrite, I believe one can use the win32 alert mechanism and owner = GetCurrentThreadId, thereby allowing threads not created by m3 runtime to participate. Will continue investigating. - Jay (phone) On Oct 20, 2009, at 6:19 PM, jay.krell at cornell.edu wrote: > Also it may be possible/easy to remove the need to create the thread > in Modula-3, though dllmain could also address that. > > - Jay (phone) > > On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > >> Also removing our giant lock would be good either way, if possible. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: >> >>> Something doesn't add up. I'll have to reread. The paper I think >>> assumes one mutex per condition, also clearly is talking about >>> "our library". I'll need to compare the paper and the library. >>> Could be the paper is wrong. A lot of literature here depends on >>> atomic SignalAndWait but the docs just changed and no longer claim >>> atomicity. >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 2:05 PM, Tony Hosking >>> wrote: >>> >>>> Should we not also consider fixing any problems in the existing >>>> Win32 threading? That paper does give a very straightforward >>>> recipe for building Moulda-3 style mutex/condition semantics >>>> using semaphores, which Windows does provide. >>>> >>>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>>> >>>>> I will read the paper, thanks. >>>>> >>>>> The java code demonstrates I believe some important applicable >>>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>>> particular, no per-thread event, no wait lists, and counter to >>>>> help matching up condition waits and signals. And no giant lock. >>>>> And stil an efficient mutex with no kernel involvement unless >>>>> there is contention, could/might use win32 criticalsection with >>>>> little extra to avoid recursion, or could use something smaller. >>>>> And no use of SignalObjectAndWait whose documentation recently >>>>> changed to remove the atomicity claim! >>>>> >>>>> - Jay (phone) >>>>> >>>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> > wrote: >>>>> >>>>>> Jay: >>>>>> >>>>>> I think we would need to delve deep into the implementation to >>>>>> be able to answer all your questions precisely. >>>>>> >>>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>>> Condition Variables with Semaphores" that you may find >>>>>> interesting / enlightening. >>>>>> >>>>>> My concern about using multiple mutex with same condition lies >>>>>> in the queuing operations. My recollection is that I've always >>>>>> associated only one mutex with a condition variable, but that >>>>>> you can have multiple conditions associated with the same mutex. >>>>>> >>>>>> I will go back and re-read Nelson again--its been a few years. >>>>>> >>>>>> Regards, >>>>>> Randy Coleburn >>>>>> >>>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>>> I still have questions here. >>>>>> >>>>>> 1) >>>>>> Page 93 of the Nelson book: >>>>>> A monitor consists of some data, a mutex, and zero or more >>>>>> condition >>>>>> variables. A particular condition variable is always used >>>>>> in conjunction with the same mutex and its data. >>>>>> >>>>>> Doesn't this contradict the point made here? >>>>>> Does a condition variable always map to the same mutex >>>>>> or not? >>>>>> >>>>>> Or is this merely describing a typical usage pattern that is >>>>>> a subset of what interface Thread allows? >>>>>> >>>>>> >>>>>> 2) >>>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>>> or also just via UnlockMutex? >>>>>> >>>>>> >>>>>> Depending on the answer to these questions, >>>>>> it seems you can largely merge mutex and condition variable. >>>>>> >>>>>> >>>>>> Condition variable is basically waiting for a >>>>>> thread to exit a mutex. >>>>>> Which is very very similar to LockMutex, except >>>>>> that it doesn't want to take the mutex in the uncontended >>>>>> case, it actually wants to wait for another thread >>>>>> to both acquire and release the mutex. >>>>>> >>>>>> >>>>>> I suspect I'm wrong on both of these. >>>>>> That condition variable really can use multiple mutexes. >>>>>> That exiting a mutex has no obligation to wake condition >>>>>> variables, >>>>>> though it might be in good faith to do so...er..if it is >>>>>> in good faith to not require programmer to use Signal/ >>>>>> Broadcast. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> - Jay >>>>>> >>>>>> >>>>>> >>>>>> From: jay.krell at cornell.edu >>>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> That seems a little strange to me but I guess I'll have to keep >>>>>> it in mind. >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> From: hosking at cs.purdue.edu >>>>>> To: mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> Sorry, yes, you are right of course! The Modula-3 spec (and >>>>>> the current pthreads-based implementation as also the win32 >>>>>> implementation I expect) do allow a condition variable being >>>>>> mediated by different mutexes. My comment was clouded by my >>>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>>> behavior for other than 1 mutex per cv is undefined. This >>>>>> confusion may have been the source of prior bugs in the >>>>>> pthreads threading implementation, but those bugs are gone >>>>>> now. We support the M3 spec properly. >>>>>> >>>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>>> >>>>>> Why can't you use the same condition variable with different >>>>>> mutexes? >>>>>> >>>>>> This is dynamic, up to the M3 programmer, no? >>>>>> >>>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> In general, it is OK in M3 to associate multiple conditions >>>>>> with the >>>>>> same mutex. But not vice versa. >>>>>> >>>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>>> >>>>>> condition variables/win32 >>>>>> >>>>>> >>>>>> So..one way I think about condition variables >>>>>> is that you want to be woken when someone else >>>>>> leaves the mutex that guards the data that you are dealing with. >>>>>> You want to know when another thread modifies the data. >>>>>> (If you have a reader/writer lock, you only want to be >>>>>> woken when someone exits a write.) >>>>>> >>>>>> >>>>>> Now, if you consider a producer/consumer queue. >>>>>> There are two interesting occurences. >>>>>> Transitions from empty to non-empty >>>>>> and transitions from full to non-full (optionally, >>>>>> if it is fixed size). >>>>>> >>>>>> >>>>>> Consumers wait for empty to non-empty. >>>>>> Consumers signal full to non-full. >>>>>> Producers wait for full to non-full. >>>>>> Producers signal non-empty to empty. >>>>>> >>>>>> >>>>>> So, in this case, one mutex is likely used with with two >>>>>> condition >>>>>> variables. >>>>>> >>>>>> >>>>>> But, what if we take a simplifying deoptimization and assume >>>>>> that a >>>>>> condition >>>>>> variable is only ever associated with one mutex? >>>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>>> condition >>>>>> associated with it? >>>>>> Like, a condition variable I think becomes stateless and >>>>>> everything is >>>>>> about the mutex? >>>>>> >>>>>> >>>>>> What is the downside? >>>>>> >>>>>> >>>>>> Condition variables are allowed to have spurious wakeups. >>>>>> This would "just" increase them. Too much? >>>>>> >>>>>> >>>>>> So, therefore, what would be wrong with the following design? >>>>>> a mutex contains an event >>>>>> and a number of waiters, zero or non-zero >>>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>>> the >>>>>> event >>>>>> >>>>>> >>>>>> To handle Signal vs. Broadcast >>>>>> method 1: >>>>>> the number of waiters might be interlocked >>>>>> the woken would decrement it >>>>>> if it isn't zero, signal the event again >>>>>> >>>>>> >>>>>> method 2: >>>>>> the number of waiters is both an integer and a semaphore >>>>>> and the lock exiter raises the semaphore by the the integer >>>>>> >>>>>> >>>>>> method 3: >>>>>> it is not an auto-reset event and there is a count >>>>>> and when the count goes to 0, reset the event >>>>>> I think in this case you have to maintain a "wait generation" >>>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>>> I think this #3 is what Java might be doing, and is described >>>>>> here: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> "3.3. The Generation Count Solution" >>>>>> >>>>>> >>>>>> also: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> 3.2. The SetEvent Solution >>>>>> Evaluating the SetEvent Solution >>>>>> Incorrectness -- >>>>>> >>>>>> >>>>>> Is that incorrect case really necessarily incorrect? >>>>>> It seems unfair, since first waiter should be first woken, but..? >>>>>> >>>>>> >>>>>> Am I missing something? A lot? >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/html; >>>>>> charset=US-ASCII >>>>>> Content-Transfer-Encoding: quoted-printable >>>>>> >>>>>> >>>>> space; = >>>>>> -webkit-line-break: after-white-space; ">
>>>>> apple-content-edited=3D"true">>>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>>> family: = >>>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>>> normal; = >>>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>>> normal; = >>>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>>> none; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text- >>>>>> size-adjust: = >>>>>> auto; -webkit-text-stroke-width: 0; ">
>>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>>> after-white-space; ">>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">
>>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>>> -webkit-line-break: after-white-space; ">>>>>> style-span" = >>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">In = >>>>>> general, it is OK in M3 to associate multiple conditions with >>>>>> the same = >>>>>> mutex.  But not vice versa.
>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">>>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>>> medium;">
>>>>> span>>>>>>
On 8 >>>>>> Oct 2009, = >>>>>> at 09:32, Jay K wrote:

>>>>> class=3D"Apple-interchange-newline">
>>>>> type=3D"cite">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>>> color: = >>>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>>> style: = >>>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>>> spacing: = >>>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>>> indent: = >>>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>>> spacing: = >>>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>>> -webkit-border-vertical-spacing: 0px; = >>>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>>> adjust: = >>>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>>> class=3D"hmmessage" = >>>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>>> variables/win32
 

So..one way I think about >>>>>> condition = >>>>>> variables
is that you want to be woken when someone >>>>>> else
leaves = >>>>>> the mutex that guards the data that you are dealing >>>>>> with.
You want to = >>>>>> know when another thread modifies the data.
(If you have a = >>>>>> reader/writer lock, you only want to be
woken when someone >>>>>> exits a = >>>>>> write.)
 

Now, if you consider a producer/ >>>>>> consumer = >>>>>> queue.
There are two interesting occurences.
Transitions >>>>>> from = >>>>>> empty to non-empty
and transitions from full to non-full = >>>>>> (optionally,
if it is fixed >>>>>> size).
 

Consumers wait = >>>>>> for empty to non-empty.
Consumers signal full to = >>>>>> non-full.
Producers wait for full to non-full.
Producers >>>>>> signal = >>>>>> non-empty to empty.
 

So, in this case, one >>>>>> mutex is = >>>>>> likely used with with two condition = >>>>>> variables.
 

But, what if we take a simplifying = >>>>>> deoptimization and assume that a condition
variable is only >>>>>> ever = >>>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>>> up anyone = >>>>>> waiting on any condition associated with it?
Like, a >>>>>> condition = >>>>>> variable I think becomes stateless and everything is
about >>>>>> the = >>>>>> mutex?
 
 
What is the = >>>>>> downside?
 

Condition variables are allowed to >>>>>> have = >>>>>> spurious wakeups.
This would "just" increase them. Too = >>>>>> much?
 

So, therefore, what would be wrong with >>>>>> the = >>>>>> following design?
 a mutex contains an event>>>>> class=3D"Apple-converted-space"> 
 and a >>>>>> number of = >>>>>> waiters, zero or non-zero>>>>> class=3D"Apple-converted-space"> 
 if a >>>>>> mutex is = >>>>>> exiting with a non-zero number of waiters, signal the = >>>>>> event
 

To handle Signal vs. Broadcast
method = >>>>>> 1:
 the number of waiters might be >>>>>> interlocked
 the = >>>>>> woken would decrement it
 if it isn't zero, signal the >>>>>> event = >>>>>> again
 

method 2:
 the number of waiters >>>>>> is both = >>>>>> an integer and a semaphore
 and the lock exiter raises >>>>>> the = >>>>>> semaphore by the the integer

 
method >>>>>> 3:
 it is = >>>>>> not an auto-reset event and there is a count
  and when >>>>>> the = >>>>>> count goes to 0, reset the event
 I think in this case >>>>>> you have = >>>>>> to maintain a "wait generation">>>>> class=3D"Apple-converted-space"> 
 so that >>>>>> new = >>>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>>> think = >>>>>> this #3 is what Java might be doing, and is described >>>>>> here:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>>> Generation Count = >>>>>> Solution"

 
also:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>>> >>>>> class=3D"Apple-converted-space"> >>>>> span>
 

Is that = >>>>>> incorrect case really necessarily incorrect?
It seems >>>>>> unfair, since = >>>>>> first waiter should be first woken, but..?

 
Am >>>>>> I missing = >>>>>> something? A lot?
 

 - = >>>>>> Jay

= >>>>>> >>>>>> --Apple-Mail-96--321618545-- >>>>>> >>>>>> >>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 07:57:26 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 07:57:26 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> I finally did some quick runs with some runtime arguments. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 runs as expected, but no threads debug output. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 ^C hangs and shows this output: 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: Stopping from act=0x7eb46d00 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 ... bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > log2.ko 2>&1 ^C does not give us any more hints. If you 'd like anything else, I can try again this evening. Hope this helps, 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 Oct 21 08:49:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 06:49:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? - Jay > Date: Wed, 21 Oct 2009 07:57:26 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > I finally did some quick runs with some runtime arguments. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 > > runs as expected, but no threads debug output. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 > ^C > > hangs and shows this output: > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: Stopping from act=0x7eb46d00 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > ... > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > > log2.ko 2>&1 > ^C > > does not give us any more hints. > > If you 'd like anything else, I can try again this evening. > > Hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 09:21:57 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 09:21:57 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Quoting Jay K : > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 21 11:06:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 09:06:40 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with over 200 runs (using @M3no-trestle-await-delete). ..Jay > Date: Wed, 21 Oct 2009 09:21:57 +0200 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Jay K : > > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 12:21:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 10:21:30 +0000 Subject: [M3devel] Juno/Win32 heap corruption Message-ID: I thought this was gone, but now I'm still seeing occasional heap corruption in Juno on Win32. It has the same signature of accessing 001ffffc. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Wed Oct 21 13:42:52 2009 From: michael.anderson at elego.de (Michael Anderson) Date: Wed, 21 Oct 2009 13:42:52 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091020193512.GA31133@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> Message-ID: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Hi, Here's an overview of the cm3 repo disk usage on birch: 1385736 /usr/cvs/cm3 32 /usr/cvs/cm3/Attic 2788 /usr/cvs/cm3/caltech-parser 191852 /usr/cvs/cm3/doc 780 /usr/cvs/cm3/examples 4252 /usr/cvs/cm3/m3-comm 1664 /usr/cvs/cm3/m3-db 5340 /usr/cvs/cm3/m3-demo 856 /usr/cvs/cm3/m3-games 1624 /usr/cvs/cm3/m3-lectern 46620 /usr/cvs/cm3/m3-libs 4460 /usr/cvs/cm3/m3-libs/arithmetic 68 /usr/cvs/cm3/m3-libs/binIO 136 /usr/cvs/cm3/m3-libs/bitvector 48 /usr/cvs/cm3/m3-libs/commandrw 56 /usr/cvs/cm3/m3-libs/debug 52 /usr/cvs/cm3/m3-libs/deepcopy 240 /usr/cvs/cm3/m3-libs/digraph 32 /usr/cvs/cm3/m3-libs/dosunixrw 456 /usr/cvs/cm3/m3-libs/dps 44 /usr/cvs/cm3/m3-libs/embutils 256 /usr/cvs/cm3/m3-libs/fftw 204 /usr/cvs/cm3/m3-libs/lapack 48 /usr/cvs/cm3/m3-libs/libbuf 4764 /usr/cvs/cm3/m3-libs/libm3 100 /usr/cvs/cm3/m3-libs/libsio 64 /usr/cvs/cm3/m3-libs/listfuncs 26568 /usr/cvs/cm3/m3-libs/m3core 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced 1980 /usr/cvs/cm3/m3-libs/m3gc-simple 276 /usr/cvs/cm3/m3-libs/m3tk-misc 56 /usr/cvs/cm3/m3-libs/parseparams 208 /usr/cvs/cm3/m3-libs/patternmatching 672 /usr/cvs/cm3/m3-libs/plplot 160 /usr/cvs/cm3/m3-libs/realgeometry 80 /usr/cvs/cm3/m3-libs/set 260 /usr/cvs/cm3/m3-libs/sgml 156 /usr/cvs/cm3/m3-libs/slisp 252 /usr/cvs/cm3/m3-libs/sortedtableextras 728 /usr/cvs/cm3/m3-libs/synthesizer 524 /usr/cvs/cm3/m3-libs/sysutils 52 /usr/cvs/cm3/m3-libs/table-list 152 /usr/cvs/cm3/m3-libs/tcl 48 /usr/cvs/cm3/m3-libs/tempfiles 76 /usr/cvs/cm3/m3-libs/unittest 28 /usr/cvs/cm3/m3-libs/unittest-numeric 1404 /usr/cvs/cm3/m3-libs/wellfett 1680 /usr/cvs/cm3/m3-mail 5652 /usr/cvs/cm3/m3-obliq 1068 /usr/cvs/cm3/m3-pkgtools 1079736 /usr/cvs/cm3/m3-sys 1952 /usr/cvs/cm3/m3-sys/cm3 18876 /usr/cvs/cm3/m3-sys/cm3ide 1756 /usr/cvs/cm3/m3-sys/cminstall 132 /usr/cvs/cm3/m3-sys/dll2lib 68 /usr/cvs/cm3/m3-sys/fix_nl 44 /usr/cvs/cm3/m3-sys/libdump 320 /usr/cvs/cm3/m3-sys/m3back 781656 /usr/cvs/cm3/m3-sys/m3cc 32 /usr/cvs/cm3/m3-sys/m3cgcat 44 /usr/cvs/cm3/m3-sys/m3cggen 4036 /usr/cvs/cm3/m3-sys/m3front 256428 /usr/cvs/cm3/m3-sys/m3gdb 264 /usr/cvs/cm3/m3-sys/m3linker 220 /usr/cvs/cm3/m3-sys/m3loader 1604 /usr/cvs/cm3/m3-sys/m3middle 260 /usr/cvs/cm3/m3-sys/m3objfile 632 /usr/cvs/cm3/m3-sys/m3quake 88 /usr/cvs/cm3/m3-sys/m3scanner 40 /usr/cvs/cm3/m3-sys/m3staloneback 10732 /usr/cvs/cm3/m3-sys/m3tests 344 /usr/cvs/cm3/m3-sys/m3tools 60 /usr/cvs/cm3/m3-sys/mklib 92 /usr/cvs/cm3/m3-sys/scripts 44 /usr/cvs/cm3/m3-sys/windowsResources 11012 /usr/cvs/cm3/m3-tools 20396 /usr/cvs/cm3/m3-ui 544 /usr/cvs/cm3/m3-win 972 /usr/cvs/cm3/m3-www 4008 /usr/cvs/cm3/scripts 16 /usr/cvs/cm3/style 88 /usr/cvs/cm3/sup 3268 /usr/cvs/cm3/tools 1424 /usr/cvs/cm3/www -Mike Quoting hendrik at topoi.pooq.com: > I just downloaded the entire CVS using cvsup and the > control file with the non-comment lines > > *default host=modula3.elegosoft.com > > *default base=/farhome/hendrik/cm3/CVSUP/cvs > *default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > *default compress > *default preserve > > and it ended up using a big pile of disk space: > > #cvsroot > hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > 1390120 cvs > hendrik at lovesong:~/cm3/CVSUP$ > > > Is it likely that I've got everything that the m3 > developers might want to have in a distributed versioning > system? If so, I'll start experimenting with conversions. > > -- hendrik > > -- 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 jay.krell at cornell.edu Wed Oct 21 13:53:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 11:53:22 +0000 Subject: [M3devel] @M3CheckShape? Message-ID: Debugging Juno on Win32..I found that some apps fail if you specify @M3CheckShape. Verified with Juno and mentor on I386_DARWIN. The error is that VBT.FatalError is not in the RAISES list. But that only occurs if the exception is raised, right? Is the check wrong or other code wrong? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:36:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:36:55 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > Quoting Jay K : > >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:38:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:38:09 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Precisely. The problem is that the signal mechanism to stop thread for GC is not working. This is a bogosity of the OpenBSD user-level threads implementation. Either we configure OpenBSD to use ThreadPosix instead of ThreadPThread or we switch to rthreads. On 21 Oct 2009, at 05:06, Jay K wrote: > Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with > over 200 runs (using @M3no-trestle-await-delete). > > ..Jay > > > Date: Wed, 21 Oct 2009 09:21:57 +0200 > > From: wagner at elegosoft.com > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Status of threads for RC4? > > > > Quoting Jay K : > > > > > Is it reasonable maybe to rewrite this test in C and see if it > hangs? > > > > > > ie. see if maybe it is an OpenBSD bug? > > > > It doesn't hang with garbage collection turned off, so there must be > > some unhealthy interaction between that and the thread > implementation. > > I don't think you will be able to narrow it down with a C test. > > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:46:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:46:27 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> The gross fix is to have threads in blocking pthread calls to post their blocked status on entry. The GC stop-world code can simply notice they are blocked and not try to signal them, but just set their status to stopping. When the blocked thread returns from the blocking call it can notice the stopping state and transition to stopped, waiting on the stop-world semaphore. This appears to be what the Kaffe VM folks do. The unfortunate thing is that this is *totally unnecessary* on every other platform except OpenBSD, as far as I know. We do not want to add cruft to the thread primitives just to support a broken user-level threads system. Better just to revert OpenBSD to our own user-level ThreadPosix implementation until OpenBSD wakes up to the real world of SMP and multicore. On 21 Oct 2009, at 09:38, Tony Hosking wrote: > Precisely. The problem is that the signal mechanism to stop thread > for GC is not working. This is a bogosity of the OpenBSD user-level > threads implementation. Either we configure OpenBSD to use > ThreadPosix instead of ThreadPThread or we switch to rthreads. > > On 21 Oct 2009, at 05:06, Jay K wrote: > >> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >> over 200 runs (using @M3no-trestle-await-delete). >> >> ..Jay >> >> > Date: Wed, 21 Oct 2009 09:21:57 +0200 >> > From: wagner at elegosoft.com >> > To: jay.krell at cornell.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] Status of threads for RC4? >> > >> > Quoting Jay K : >> > >> > > Is it reasonable maybe to rewrite this test in C and see if it >> hangs? >> > > >> > > ie. see if maybe it is an OpenBSD bug? >> > >> > It doesn't hang with garbage collection turned off, so there must >> be >> > some unhealthy interaction between that and the thread >> implementation. >> > I don't think you will be able to narrow it down with a C test. >> > >> > 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 >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:51:16 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:51:16 -0400 Subject: [M3devel] Juno/Win32 heap corruption In-Reply-To: References: Message-ID: <72EAD05B-B812-4A7E-B07E-262F30AC9A52@cs.purdue.edu> Can you not set a HW watchpoint to check for the location being overwritten with the bogus pointer? Also, better to run with @M3paranoidgc so you catch it in the heap sanity checks (which check to make sure that pointers really look like pointers) rather than some arbitrary place. 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 21 Oct 2009, at 06:21, Jay K wrote: > I thought this was gone, but now I'm still seeing occasional heap > corruption in Juno on Win32. > It has the same signature of accessing 001ffffc. > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 16:00:42 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:00:42 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> Message-ID: <20091021160042.abtrrlb37okco48s@mail.elegosoft.com> Quoting Tony Hosking : > The gross fix is to have threads in blocking pthread calls to post > their blocked status on entry. The GC stop-world code can simply > notice they are blocked and not try to signal them, but just set their > status to stopping. When the blocked thread returns from the blocking > call it can notice the stopping state and transition to stopped, > waiting on the stop-world semaphore. This appears to be what the > Kaffe VM folks do. The unfortunate thing is that this is *totally > unnecessary* on every other platform except OpenBSD, as far as I know. > We do not want to add cruft to the thread primitives just to support > a broken user-level threads system. Better just to revert OpenBSD to > our own user-level ThreadPosix implementation until OpenBSD wakes up > to the real world of SMP and multicore. Yes. We should not introduce unnecessary workarounds for broken platform libraries. If user-level threads work, that should be fine. Olaf > On 21 Oct 2009, at 09:38, Tony Hosking wrote: > >> Precisely. The problem is that the signal mechanism to stop thread >> for GC is not working. This is a bogosity of the OpenBSD >> user-level threads implementation. Either we configure OpenBSD to >> use ThreadPosix instead of ThreadPThread or we switch to rthreads. >> >> On 21 Oct 2009, at 05:06, Jay K wrote: >> >>> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >>> over 200 runs (using @M3no-trestle-await-delete). >>> >>> ..Jay >>> >>>> Date: Wed, 21 Oct 2009 09:21:57 +0200 >>>> From: wagner at elegosoft.com >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> >>>> Quoting Jay K : >>>> >>>> > Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> > >>>> > ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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 wagner at elegosoft.com Wed Oct 21 16:04:54 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:04:54 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Quoting Tony Hosking : > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > >> Quoting Jay K : >> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 wagner at elegosoft.com Wed Oct 21 16:31:01 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:31:01 +0200 Subject: [M3devel] new trac tickets for threads etc. Message-ID: <20091021163101.y8rkzklgkgg0040w@mail.elegosoft.com> FYI, I've created the following tickets to document the current problems, work-arounds and resolutions: https://projects.elego.de/cm3/ticket/1073 https://projects.elego.de/cm3/ticket/1074 https://projects.elego.de/cm3/ticket/1075 Please feel free to add and change the information. All tickets are targeted at the -- again overdue -- RC4. (Regardsless what date I specify, it's never late enough ;-) 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 Oct 21 18:06:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 12:06:12 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Message-ID: <5E9865BF-FB72-4157-B138-1C4F549C1AC9@cs.purdue.edu> This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 hendrik at topoi.pooq.com Wed Oct 21 18:47:50 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Wed, 21 Oct 2009 12:47:50 -0400 Subject: [M3devel] cvs size In-Reply-To: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Message-ID: <20091021164750.GA1700@topoi.pooq.com> On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: > Hi, > > Here's an overview of the cm3 repo disk usage on birch: Thanks. It looks as if things went OK. Ths only difference I noticed is that I ended up with a cvs/sup directory as well as a cvs/cm3/sup directory. My guess is that it's something that cvsup uses to keep track of things so I rerun cvsup to get updates efficiently. But why do I get two of them? OR alternatively, why is the one my cvsup generates in a different place from the one you have in your repository. Do I even need a copy of yours? Might it confuse cvsup? -- hendrik > > 1385736 /usr/cvs/cm3 > > 32 /usr/cvs/cm3/Attic > 2788 /usr/cvs/cm3/caltech-parser > 191852 /usr/cvs/cm3/doc > 780 /usr/cvs/cm3/examples > 4252 /usr/cvs/cm3/m3-comm > 1664 /usr/cvs/cm3/m3-db > 5340 /usr/cvs/cm3/m3-demo > 856 /usr/cvs/cm3/m3-games > 1624 /usr/cvs/cm3/m3-lectern > 46620 /usr/cvs/cm3/m3-libs > > 4460 /usr/cvs/cm3/m3-libs/arithmetic > 68 /usr/cvs/cm3/m3-libs/binIO > 136 /usr/cvs/cm3/m3-libs/bitvector > 48 /usr/cvs/cm3/m3-libs/commandrw > 56 /usr/cvs/cm3/m3-libs/debug > 52 /usr/cvs/cm3/m3-libs/deepcopy > 240 /usr/cvs/cm3/m3-libs/digraph > 32 /usr/cvs/cm3/m3-libs/dosunixrw > 456 /usr/cvs/cm3/m3-libs/dps > 44 /usr/cvs/cm3/m3-libs/embutils > 256 /usr/cvs/cm3/m3-libs/fftw > 204 /usr/cvs/cm3/m3-libs/lapack > 48 /usr/cvs/cm3/m3-libs/libbuf > 4764 /usr/cvs/cm3/m3-libs/libm3 > 100 /usr/cvs/cm3/m3-libs/libsio > 64 /usr/cvs/cm3/m3-libs/listfuncs > 26568 /usr/cvs/cm3/m3-libs/m3core > 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced > 1980 /usr/cvs/cm3/m3-libs/m3gc-simple > 276 /usr/cvs/cm3/m3-libs/m3tk-misc > 56 /usr/cvs/cm3/m3-libs/parseparams > 208 /usr/cvs/cm3/m3-libs/patternmatching > 672 /usr/cvs/cm3/m3-libs/plplot > 160 /usr/cvs/cm3/m3-libs/realgeometry > 80 /usr/cvs/cm3/m3-libs/set > 260 /usr/cvs/cm3/m3-libs/sgml > 156 /usr/cvs/cm3/m3-libs/slisp > 252 /usr/cvs/cm3/m3-libs/sortedtableextras > 728 /usr/cvs/cm3/m3-libs/synthesizer > 524 /usr/cvs/cm3/m3-libs/sysutils > 52 /usr/cvs/cm3/m3-libs/table-list > 152 /usr/cvs/cm3/m3-libs/tcl > 48 /usr/cvs/cm3/m3-libs/tempfiles > 76 /usr/cvs/cm3/m3-libs/unittest > 28 /usr/cvs/cm3/m3-libs/unittest-numeric > 1404 /usr/cvs/cm3/m3-libs/wellfett > > 1680 /usr/cvs/cm3/m3-mail > 5652 /usr/cvs/cm3/m3-obliq > 1068 /usr/cvs/cm3/m3-pkgtools > 1079736 /usr/cvs/cm3/m3-sys > > 1952 /usr/cvs/cm3/m3-sys/cm3 > 18876 /usr/cvs/cm3/m3-sys/cm3ide > 1756 /usr/cvs/cm3/m3-sys/cminstall > 132 /usr/cvs/cm3/m3-sys/dll2lib > 68 /usr/cvs/cm3/m3-sys/fix_nl > 44 /usr/cvs/cm3/m3-sys/libdump > 320 /usr/cvs/cm3/m3-sys/m3back > 781656 /usr/cvs/cm3/m3-sys/m3cc > 32 /usr/cvs/cm3/m3-sys/m3cgcat > 44 /usr/cvs/cm3/m3-sys/m3cggen > 4036 /usr/cvs/cm3/m3-sys/m3front > 256428 /usr/cvs/cm3/m3-sys/m3gdb > 264 /usr/cvs/cm3/m3-sys/m3linker > 220 /usr/cvs/cm3/m3-sys/m3loader > 1604 /usr/cvs/cm3/m3-sys/m3middle > 260 /usr/cvs/cm3/m3-sys/m3objfile > 632 /usr/cvs/cm3/m3-sys/m3quake > 88 /usr/cvs/cm3/m3-sys/m3scanner > 40 /usr/cvs/cm3/m3-sys/m3staloneback > 10732 /usr/cvs/cm3/m3-sys/m3tests > 344 /usr/cvs/cm3/m3-sys/m3tools > 60 /usr/cvs/cm3/m3-sys/mklib > 92 /usr/cvs/cm3/m3-sys/scripts > 44 /usr/cvs/cm3/m3-sys/windowsResources > > 11012 /usr/cvs/cm3/m3-tools > 20396 /usr/cvs/cm3/m3-ui > 544 /usr/cvs/cm3/m3-win > 972 /usr/cvs/cm3/m3-www > 4008 /usr/cvs/cm3/scripts > 16 /usr/cvs/cm3/style > 88 /usr/cvs/cm3/sup > 3268 /usr/cvs/cm3/tools > 1424 /usr/cvs/cm3/www > > -Mike > > Quoting hendrik at topoi.pooq.com: > > >I just downloaded the entire CVS using cvsup and the > >control file with the non-comment lines > > > >*default host=modula3.elegosoft.com > > > >*default base=/farhome/hendrik/cm3/CVSUP/cvs > >*default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > > >*default compress > >*default preserve > > > >and it ended up using a big pile of disk space: > > > >#cvsroot > >hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > >1390120 cvs > >hendrik at lovesong:~/cm3/CVSUP$ > > > > > >Is it likely that I've got everything that the m3 > >developers might want to have in a distributed versioning > >system? If so, I'll start experimenting with conversions. > > > >-- hendrik > > > > > > > > -- > 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 wagner at elegosoft.com Wed Oct 21 20:05:37 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 20:05:37 +0200 Subject: [M3devel] Fwd: Re: Status of threads for RC4? Message-ID: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 > ----- End forwarded message ----- -- 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 -------------- This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 wagner at elegosoft.com Wed Oct 21 21:12:36 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 21:12:36 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091021164750.GA1700@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> <20091021164750.GA1700@topoi.pooq.com> Message-ID: <20091021211236.0m6f81bc0kocggo4@mail.elegosoft.com> Quoting hendrik at topoi.pooq.com: > On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: >> Hi, >> >> Here's an overview of the cm3 repo disk usage on birch: > > Thanks. It looks as if things went OK. > > Ths only difference I noticed is that I ended up with a cvs/sup > directory as well as a cvs/cm3/sup directory. > > My guess is that it's something that cvsup uses to keep track of things > so I rerun cvsup to get updates efficiently. But why do I get two of > them? OR alternatively, why is the one my cvsup generates in a > different place from the one you have in your repository. > > Do I even need a copy of yours? Might it confuse cvsup? The one on the server is just a relict, I guess. You only need the local one. CVSup keeps a checksum list there. You can delete it, but it will speed up things if it exists. 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 Oct 21 22:02:26 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Wed, 21 Oct 2009 13:02:26 -0700 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 >> > > > > ----- End forwarded message ----- > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 Wed Oct 21 23:02:41 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:02:41 +0000 Subject: [M3devel] Juno/Thread/Win32 notes Message-ID: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 23:07:09 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:07:09 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 02:12:55 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 00:12:55 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: ps: notice: >> resumed system calls will return an error value of EINTR We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 03:05:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 01:05:30 +0000 Subject: [M3devel] interesting book on concurrency Message-ID: search the web for: "the little book of semaphores" by Allen Downey. http://www.greenteapress.com/semaphores/ - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 03:32:26 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:32:26 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: On 21 Oct 2009, at 20:12, Jay K wrote: > ps: notice: > > >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. > We probably need to handle that in a bunch of places. > But some things like read/write will return just having done a > partial read/write? Huh? Should already be done? > Maybe something more cooperative would be easier? > Or even user threads?? > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. > > - Jay > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 21:07:09 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Not sure how the formatting will come through..but yes. > Hopefully on all processor architectures. > > > "np" means "not portable", ok > > > http://www.openbsd.org/cgi-bin/man.cgi > > appropos suspend > > http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 > > PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > PTHREAD_SUSPEND_NP(3) > > NAME > pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, > pthread_resume_all_np - suspend and resume thread(s) > > SYNOPSIS > #include > #include > > int > pthread_suspend_np(pthread_t thread); > > void > pthread_suspend_all_np(void); > > int > pthread_resume_np(pthread_t thread); > > void > pthread_resume_all_np(void); > > DESCRIPTION > The pthread_suspend_np() function interrupts the given thread > and places > it in a suspended state. > > The pthread_suspend_all_np() function interrupts all threads > except the > current thread and places them in a suspended state. > > The pthread_resume_np() function resumes a thread suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_all_np() function resumes all threads > suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_np() and pthread_resume_all_np() functions > have no ef- > fect on threads that have not been suspended. > > Suspending and resuming a thread has an effect similar to that > of receiv- > ing a signal, namely that resumed system calls will return an > error value > of EINTR. > > RETURN VALUES > The pthread_suspend_np() and pthread_resume_np() functions fail > if: > > [ESRCH] No thread could be found corresponding to that > specified by > the given thread ID. > > The pthread_suspend_np() function fails if: > > [EDEADLK] Attempt to suspend the current thread. > > SEE ALSO > pthread_cancel(3), pthreads(3) > > STANDARDS > The pthread_suspend_np(), pthread_suspend_all_np(), > pthread_resume_np() > and pthread_resume_all_np() functions are non-portable and may > not be > supported with the above semantics on other POSIX systems. > > OpenBSD 4.5 May 31, > 2007 1 > NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > > - Jay > > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 13:02:26 -0700 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > OpenBSD has good documentation.. (man pages) > > - Jay (phone) > > On Oct 21, 2009, at 11:05 AM, Olaf Wagner > wrote: > > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread > implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > > > > > ----- End forwarded message ----- > > > -- > 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 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 hosking at cs.purdue.edu Thu Oct 22 03:56:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:56:21 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> On 21 Oct 2009, at 17:02, Jay K wrote: > ThreadWin32.m3 almost exactly matches Birrel's design. > The order of two unlocks is reversed. It probably doesn't matter. > He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. > We have queueing on our locks which appears unncessary, but is maybe > with in mind an optimization mentioned but now shown by Birrel -- > that of Signal with a lock held transfering a thread right > to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. > Birrel also has one mutex per condition variable but that > seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/ broadcast thread. > I believe there is much room for performance improvement > here, but if it is correct, it is ok for this release. > As well, I believe lock/conditionvariables can be made to work > in threads not created by the Modula-3 runtime, at least with > a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). > (owner = GetCurrentThreadId instead of T). Sure. > I put in a bunch of RTIO in Juno. > Whenever it hangs, the Signal call doesn't actually occur. > We have to try to figure out why. > It is something in the Misc/misc calls. What are the Misc/misc calls? > So ThreadWin32.m3 is fairly well vindicated (except > maybe via some roundabout fashion). > > > The heap corruption is now fairly rare in Juno. > I don't know if it is consistent or not. > The contents are, not sure of the address. > I'll debug more. > > > My next idea..since I think the corruption involves > copying a pixmap over other data, is to alter all > pixmaps to be composed of specific data, see if that > occurs in the corruption, to try to confirm this > part of my theory. > > > If that holds, then the memcpys done by gc could > check for the pattern (actually they could check > anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. > As well, with ThreadWin32.m3 having gotten some fixes, > getting various timestamps of the source tree might be > a good idea. > > > With ThreadWin32.m3 fairly well vindicated, we might > declare the quality is high enough asis. ? > But I'd like to keep investigating. > (Anyone else can?) > > > The doubt imho is now more cast upon the Win32 Trestle code. > We might even try Cygwin configured to use Win32 threads > and X Windows and see if that has the same bug. > > > Later.. > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:21:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:21:28 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:24:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:24:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: > Huh? Should already be done? Could be. > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. > These are available for OpenBSD already. Not sure why you synthesized. Not that I see. They probably don't scramble in setjmp/longjmp though? (else mine wouldn't work) but making setjmp work is almost the same work as building get/set/make/swapcontext on top of it, gotta poke around in the jmpbuf either way. - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Wed, 21 Oct 2009 21:32:26 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? On 21 Oct 2009, at 20:12, Jay K wrote: ps: notice: >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 07:26:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:26:03 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: > It seems like we should have Mutex and RecursiveMutex, have either work with Condition Understood that Wait would have to assert that RecursiveMutex is only locked to depth 1 or somesuch. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 22 Oct 2009 05:21:28 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 20:19:30 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 22 Oct 2009 14:19:30 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <5532FF75-842A-4341-9531-A321B0F56E17@cs.purdue.edu> On 22 Oct 2009, at 01:21, Jay K wrote: > > The only reason to have it in the CV is to achieve the > optimization, > > so you know to which mutex queue we should transfer the signalled/ > broadcast thread. > > > Of course. I should have realized that. > Um..the data is available anyway though, isn't it? > The thread had to call wait(mutex, condition) in order for > signal(condition) to unlink him from the condition's waiters, the > waiting thread can store the mutex in itself (he can only be waiting > on one condition variable at a time) and the signaling thread can > grab that. > I think. You may need to know which mutex to move the thread to upon alert. > In either case, I'm not too inclined to touch it for this release > until we are sure there is a bug, and that looks unlikely at this > point. We could try putting back your BroadcastHeap change? I don't think that is in any way broken. > It also seems a little gross that the heap lock is a special case > recursive mutex. > It seems like we should have Mutex and RecursiveMutex, have either > work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just > be wrappers around that. The heap lock cannot be an object allocated in the heap. > More generally we should probably try to embelish Thread.i3 with > more primitives I think. At least "interlocked" and "once", if not > "event" and "semaphore". > "once" could definitely see a fair amount of use. Yuck. Thread.i3 is a standard interface and should not change. Modula-3 has strong ideas about what thread primitives should be. > The rest maybe not, maybe they are too primitive and hard to get > good use out of, hard to define portably/efficiently. > > > Or maybe LockHeap/UnlockHeap recursive support could/should be > removed and just stick with Mutex and Condition and nothing else? Again. These are needed inside GC when one cannot touch heap objects. > > > Well, reader/writer locks are nice. ... -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:11:36 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:11:36 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:16:50 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:16:50 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:07:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:07:02 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:08:00 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:08:00 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: I don't think tweaking the heap parameters will help much. On 23 Oct 2009, at 09:11, Jay K wrote: > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:43:59 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext Message-ID: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 03:59:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 01:59:49 +0000 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext In-Reply-To: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> References: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> Message-ID: - sounds very good - no active target defaults to user threads The "closest" is FreeBSD 4.x. I mean, you know, that is the only one anyone here has expressed a recent desire to use, and used it and it was made to work. He can locally edit m3makefile. - I don't know of any significant platform without pthreads except NT and hypothetical DJGPP (Linux 2.4 mentioned below) - The following I know don't have make/get/set/swapcontext: any version of Cygwin, and I suspect not worth worrying about any version of NT, and I suspect not worth worrying about I don't think fibers are viable but maybe. Fibers don't interact propertly with any locking construct except Interlocked. e.g. critical sections nor any kernel object "work". Win7 has "user mode scheduling" that addresses problems with fibers but I think only on 64bit? any version of OpenBSD Darwin <=10.4; I synthesized them for PowerPC/10.4; you might try that (I found the PowerPC compat on x86 to be not very good though, maybe that was debugging only). - I think HP-UX manpage has strong warnings about these functions, being very version specific/fragile or something. But HP-UX has pthreads. - old Linux 2.4 still seems to be in somewhat active use, in specialized areas -- my router and a networked hard drive I have; pthreads is there I think, but not NPTL. I wonder if we should have I386_FREEBSD_USERTHREADS I386_LINUX_USERTHREADS SPARC_SOLARIS_USERTHREADS? and give them decent test/Hudson/release coverage? Maybe I386_FREEBSD4_USERTHREADS I386_LINUX24_USERTHREADS To "ghettoize" them via naming only, though they'd actually work and be tested on current systems? That is, you know, make userthreads work a bunch, be more portable, maintainable, great, then what? They still sit unused/unbuilt/untested? How to fix that? At least built/testet? Maybe just with cm3 -D thing, don't release them, just build/test them regularly? > The advantage of this move will be to eliminate a large swath of "cloned" Good! Specific questions about specific platforms ask me? You can see the answer is kind of backwards -- notice how every platform I have introduced I didn't add user threads support for. Question is only then for old/dead/unused/dormant platforms, and most of them DO have pthreads these days. I have a few machines not setup or not powered on -- Irix (32bit and 64bit in one) and AIX (32bit and 64bit in one) and HP-UX/HPPA (32bit and 64bit in one), Linux/IA64 specifically are powered off. VMS/Alpha, VMS/IA64 HP-UX/IA64, Tru64 I haven't gotten up and running yet, but I think they all support pthreads a long time now so no big worry. I also don't have have Linux/PPC64 or Darwin/PPC64 capability yet. (I think after this release Linux/IA64 should be done and will require a small change -- it has "two stacks" to scan.) > but don't have easy access to existing ABIs for other targets Please try the ssh commands I sent? That'll give you OpenBSD. FreeBSD maybe but I think it is off. I can provide more but for purposes of this line of questioning doesn't seem criticla. Birch gives you Linux/AMD64 and, in (slow/VM) a fashion NT and maybe Cygwin. - Jay From: hosking at cs.purdue.edu To: m3devel at elegosoft.com Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:19:07 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:19:07 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:39:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:39:49 +0000 Subject: [M3devel] mentor/win32 Message-ID: Well mentor at least crashes consistently, in head. 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000 fld dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ 131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Oct 24 16:53:28 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 24 Oct 2009 14:53:28 +0000 (GMT) Subject: [M3devel] mentor/win32 In-Reply-To: Message-ID: <959278.61051.qm@web23603.mail.ird.yahoo.com> Hi: Does it show a runtime error message. can you get one? in which module is nil dereferencing? could you compare what is the difference when the system uses the gcc backend?? Thanks in advance. --- El s?b, 24/10/09, Jay K wrote: De: Jay K Asunto: [M3devel] mentor/win32 Para: "m3devel" Fecha: s?bado, 24 octubre, 2009 9:39 Well mentor at least crashes consistently, in head. ? 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) ? debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000????????? fld???? dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ ?131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 24 19:15:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 24 Oct 2009 13:15:36 -0400 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <17380155-97E5-4813-BEAC-0D5A6C7B2602@cs.purdue.edu> This is only on Windows. On 24 Oct 2009, at 10:53, Daniel Alejandro Benavides D. wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 03:06:45 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 24 Oct 2009 19:06:45 -0700 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <6DBB0337-EF2E-403B-918E-2A5D4490F904@hotmail.com> This is during startup. I figured I'd see if other GUI apps crash like Juno but more consistently. - Jay (phone) On Oct 24, 2009, at 7:53 AM, "Daniel Alejandro Benavides D." wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 11:49:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 10:49:39 +0000 Subject: [M3devel] map SIGBUS to SegV? Message-ID: I just noticed..it appears that some ports historically catch SIGBUS and call SegV, and some don't install a handler for it. e.g. it looks like the Darwin platforms do this. In my porting of the signal handling code to C, I foisted this behavior on all platforms. Reasonable? Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. I think it is probably ok asis, or maybe even an improvement. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 12:55:42 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 11:55:42 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 25 18:51:45 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Oct 2009 13:51:45 -0400 Subject: [M3devel] map SIGBUS to SegV? In-Reply-To: References: Message-ID: <7052E471-5164-49A2-9067-AE73BD777481@cs.purdue.edu> Good question. I'm not sure what the different OSs do. Does anyone else have an opinion? On 25 Oct 2009, at 06:49, Jay K wrote: > I just noticed..it appears that some ports historically catch SIGBUS > and call SegV, and some don't install a handler for it. > e.g. it looks like the Darwin platforms do this. > In my porting of the signal handling code to C, I foisted this > behavior on all platforms. > Reasonable? > Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. > I think it is probably ok asis, or maybe even an improvement. > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:43:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:43:29 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:45:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:45:57 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 04:26:46 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 03:26:46 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: full disclosure: This version has the bug where non-standalone NT apps don't do set operations correctly. (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) I'll retest with standalone. If that survives hundreds of iterations I can go forward gradually and find when things broke. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Mon, 26 Oct 2009 02:45:57 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 08:02:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 07:02:10 +0000 Subject: [M3devel] gdb help -- looping until crash? Message-ID: On Windows I use: type \cm3\bin\j.cmd @echo off setlocal set a=1 :loop echo %a% \bin\x86\cdb -g -G Juno.exe @M3no-trestle-await-delete @M3paranoidgc set /a a=a + 1 goto :loop this runs Juno in a loop, in a debugger, until it hits an access violation. It prints how many times it has run before each run. -g means go right away at the start of the process -G means go past the end of the process set /a is for "arithmetic" (expression evaluation) What is the equivalent with gdb/sh? I've search the web some but haven't found it yet. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 09:03:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:03:06 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? Message-ID: Can anyone explain this? DblBufferVBT.m3 PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; from: VBT.T; delta := Point.Origin; wait := TRUE) = <* LL.sup < to *> VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); VBT.m3: PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): ScrnPixmap.T RAISES {} = VAR bad: Region.T; BEGIN LOCK v DO from is passed uninitialized to Capture. The code appears the same in head, 5.2.6, 3.6. I do hit the LOCK v in Capture if I run Juno sufficient times on NT. Maybe from should be Child() or ch? I'll try that. - Jay From jay.krell at cornell.edu Mon Oct 26 09:10:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:10:28 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? In-Reply-To: References: Message-ID: sorry I'm an idiot, the wordwrap confused me into seeing "VAR" where it wasn't. Still, to is sometimes NIL. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Mon, 26 Oct 2009 08:03:06 +0000 > Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? > > > Can anyone explain this? > > DblBufferVBT.m3 > > PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; > from: VBT.T; delta := Point.Origin; wait := TRUE) = > <* LL.sup < to *> > VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN > pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); > > VBT.m3: > > PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): > ScrnPixmap.T RAISES {} = > VAR bad: Region.T; > BEGIN > LOCK v DO > > from is passed uninitialized to Capture. > The code appears the same in head, 5.2.6, 3.6. > I do hit the LOCK v in Capture if I run Juno sufficient times on NT. > Maybe from should be Child() or ch? > I'll try that. > > > - Jay From wagner at elegosoft.com Mon Oct 26 10:35:08 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 10:35:08 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> Hi again, I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month, so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so, what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again, is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : > On 21 Oct 2009, at 20:12, Jay K wrote: > >> ps: notice: >> >>>> resumed system calls will return an error value of EINTR > > Not a problem. We already cope with that in ThreadPThread. > >> We probably need to handle that in a bunch of places. >> But some things like read/write will return just having done a >> partial read/write? > > Huh? Should already be done? > >> Maybe something more cooperative would be easier? >> Or even user threads?? >> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >> on some OpenBSD platforms, like ppc/x86. > > These are available for OpenBSD already. Not sure why you synthesized. > >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 21:07:09 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Not sure how the formatting will come through..but yes. >> Hopefully on all processor architectures. >> >> >> "np" means "not portable", ok >> >> >> http://www.openbsd.org/cgi-bin/man.cgi >> >> appropos suspend >> >> http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 >> >> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >> PTHREAD_SUSPEND_NP(3) >> >> NAME >> pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, >> pthread_resume_all_np - suspend and resume thread(s) >> >> SYNOPSIS >> #include >> #include >> >> int >> pthread_suspend_np(pthread_t thread); >> >> void >> pthread_suspend_all_np(void); >> >> int >> pthread_resume_np(pthread_t thread); >> >> void >> pthread_resume_all_np(void); >> >> DESCRIPTION >> The pthread_suspend_np() function interrupts the given thread >> and places >> it in a suspended state. >> >> The pthread_suspend_all_np() function interrupts all threads except the >> current thread and places them in a suspended state. >> >> The pthread_resume_np() function resumes a thread suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_all_np() function resumes all threads suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_np() and pthread_resume_all_np() functions >> have no ef- >> fect on threads that have not been suspended. >> >> Suspending and resuming a thread has an effect similar to that >> of receiv- >> ing a signal, namely that resumed system calls will return an >> error value >> of EINTR. >> >> RETURN VALUES >> The pthread_suspend_np() and pthread_resume_np() functions fail if: >> >> [ESRCH] No thread could be found corresponding to that >> specified by >> the given thread ID. >> >> The pthread_suspend_np() function fails if: >> >> [EDEADLK] Attempt to suspend the current thread. >> >> SEE ALSO >> pthread_cancel(3), pthreads(3) >> >> STANDARDS >> The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() >> and pthread_resume_all_np() functions are non-portable and may not be >> supported with the above semantics on other POSIX systems. >> >> OpenBSD 4.5 May 31, 2007 >> 1 >> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >> >> - Jay >> >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 13:02:26 -0700 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> OpenBSD has good documentation.. (man pages) >> >> - Jay (phone) >> >> On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: >> >> Stefan, >> >> you are our OpenBSD fan, aren't you? Can you answer this? >> >> Olaf >> >> ----- Forwarded message from hosking at cs.purdue.edu ----- >> Date: Wed, 21 Oct 2009 12:06:12 -0400 >> From: Tony Hosking >> Reply-To: Tony Hosking >> Subject: Re: [M3devel] Status of threads for RC4? >> To: Olaf Wagner >> Cc: Jay K , m3devel >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, pthread_resume? >> If so then we could work avoid the signals entirely (as we do on OS >> X). All that is needed is implementation of RTMachine.SuspendThread, >> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> >> >> ----- End forwarded message ----- >> >> >> -- >> 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 >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, >> pthread_resume? If so then we could work avoid the signals entirely >> (as we do on OS X). All that is needed is implementation of >> RTMachine.SuspendThread, RTMachine.ResumeThread and >> RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> -- 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 Mon Oct 26 10:41:18 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:41:18 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog at mail.elegosoft.com> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 WIndows threads are ok. OpenBSD are not currently=2C never have been. Windows problems are probably in Trestle. Have been for many years apparently. =20 - Jay ---------------------------------------- > Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Hi again=2C > > I'm still uncertain regarding the thread status. Hudson hasn't built > anything for about a month=2C so there have been no check-ins to the > release branch. > > (1) Has the OpenBSD problem been fixed or worked around? > If so=2C what are the relevant changes that should me merged from > trunk? > > The ChangeLog shows a lot of commits on head... > > (2) Is there still a problem in Windows threads? > Or are we just chasing a general access violation due to an > unknown reason? > > Again=2C is this ongoing or should some changes be merged for > the release? > > Olaf > > Quoting Tony Hosking : > >> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >> >>> ps: notice: >>> >>>>> resumed system calls will return an error value of EINTR >> >> Not a problem. We already cope with that in ThreadPThread. >> >>> We probably need to handle that in a bunch of places. >>> But some things like read/write will return just having done a >>> partial read/write? >> >> Huh? Should already be done? >> >>> Maybe something more cooperative would be easier? >>> Or even user threads?? >>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>> on some OpenBSD platforms=2C like ppc/x86. >> >> These are available for OpenBSD already. Not sure why you synthesized. >> >>> >>> - Jay >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Not sure how the formatting will come through..but yes. >>> Hopefully on all processor architectures. >>> >>> >>> "np" means "not portable"=2C ok >>> >>> >>> http://www.openbsd.org/cgi-bin/man.cgi >>> >>> appropos suspend >>> >>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>> >>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>> PTHREAD_SUSPEND_NP(3) >>> >>> NAME >>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>> pthread_resume_all_np - suspend and resume thread(s) >>> >>> SYNOPSIS >>> #include=20 >>> #include=20 >>> >>> int >>> pthread_suspend_np(pthread_t thread)=3B >>> >>> void >>> pthread_suspend_all_np(void)=3B >>> >>> int >>> pthread_resume_np(pthread_t thread)=3B >>> >>> void >>> pthread_resume_all_np(void)=3B >>> >>> DESCRIPTION >>> The pthread_suspend_np() function interrupts the given thread >>> and places >>> it in a suspended state. >>> >>> The pthread_suspend_all_np() function interrupts all threads except the >>> current thread and places them in a suspended state. >>> >>> The pthread_resume_np() function resumes a thread suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_all_np() function resumes all threads suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_np() and pthread_resume_all_np() functions >>> have no ef- >>> fect on threads that have not been suspended. >>> >>> Suspending and resuming a thread has an effect similar to that >>> of receiv- >>> ing a signal=2C namely that resumed system calls will return an >>> error value >>> of EINTR. >>> >>> RETURN VALUES >>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>> >>> [ESRCH] No thread could be found corresponding to that >>> specified by >>> the given thread ID. >>> >>> The pthread_suspend_np() function fails if: >>> >>> [EDEADLK] Attempt to suspend the current thread. >>> >>> SEE ALSO >>> pthread_cancel(3)=2C pthreads(3) >>> >>> STANDARDS >>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= np() >>> and pthread_resume_all_np() functions are non-portable and may not be >>> supported with the above semantics on other POSIX systems. >>> >>> OpenBSD 4.5 May 31=2C 2007 >>> 1 >>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>> >>> - Jay >>> >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> OpenBSD has good documentation.. (man pages) >>> >>> - Jay (phone) >>> >>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>> >>> Stefan=2C >>> >>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>> >>> Olaf >>> >>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>> From: Tony Hosking=20 >>> Reply-To: Tony Hosking=20 >>> Subject: Re: [M3devel] Status of threads for RC4? >>> To: Olaf Wagner=20 >>> Cc: Jay K =2C m3devel=20 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>> If so then we could work avoid the signals entirely (as we do on OS >>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> ----- End forwarded message ----- >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C >>> pthread_resume? If so then we could work avoid the signals entirely >>> (as we do on OS X). All that is needed is implementation of >>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>> RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= 5 > http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= n > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= 194 > = From jay.krell at cornell.edu Mon Oct 26 10:46:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:46:06 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Here's a better view of the problem, again in 5.2.6. Notice 00e15888 repeating in both threads' parameters. This seems like a simple "add a lock use somewhere" problem but I have little idea of Trestle's locking protocols, apparently a complicated topic. You know, somehow redisplay/reshape need more serialization, but I don't know exactly what. The call to Capture fails with a dereference of NIL in the LOCK use. The unusual part I think is: 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] That's probably not how Redisplay is normally used? I'll look again at head and see if the behavior resembles 5.2.6. 0:000> .logopen c:\2.log Opened log file 'c:\2.log' 0:000> ~*kv99 . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr Args to Child 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff WARNING: Stack unwind information not available. Following frames may be wrong. 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong. 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba - Jay ________________________________ > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > full disclosure: > This version has the bug where non-standalone NT apps don't do set operations correctly. > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > I'll retest with standalone. > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Mon, 26 Oct 2009 02:45:57 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > 0:000> ~*k > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > 0510fec0 00391ebd kernel32!Sleep+0xf > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > 0520fe30 7e418816 USER32!GetDC+0x6d > 0520fe98 7e4189cd USER32!GetDC+0x14f > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > 0540fee4 00391ebd kernel32!Sleep+0xf > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > 9] > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > 0] > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > 0] > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 0:000> > > > - Jay > > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > (1374.1548): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sun, 25 Oct 2009 11:55:42 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > (a70.158c): Access violation - code c0000005 (first chance) > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0:000> > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sat, 24 Oct 2009 14:19:07 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > quick experiment: > #include > #include > int main() > { > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > return 0; > } > > => > 00350000 > 00360000 > 00370000 > > - Jay > > > ________________________________ > > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Fri, 23 Oct 2009 14:07:02 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > > > ________________________________ > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > - Jay > > > > [snip] > From wagner at elegosoft.com Mon Oct 26 13:49:24 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 13:49:24 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> Quoting Jay K : > WIndows threads are ok. In the release branch, too? > OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? > Windows problems are probably in Trestle. > Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf > =20 > - Jay > > ---------------------------------------- >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >> From: wagner at elegosoft.com >> To: hosking at cs.purdue.edu >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Hi again=2C >> >> I'm still uncertain regarding the thread status. Hudson hasn't built >> anything for about a month=2C so there have been no check-ins to the >> release branch. >> >> (1) Has the OpenBSD problem been fixed or worked around? >> If so=2C what are the relevant changes that should me merged from >> trunk? >> >> The ChangeLog shows a lot of commits on head... >> >> (2) Is there still a problem in Windows threads? >> Or are we just chasing a general access violation due to an >> unknown reason? >> >> Again=2C is this ongoing or should some changes be merged for >> the release? >> >> Olaf >> >> Quoting Tony Hosking : >> >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>> >>>> ps: notice: >>>> >>>>>> resumed system calls will return an error value of EINTR >>> >>> Not a problem. We already cope with that in ThreadPThread. >>> >>>> We probably need to handle that in a bunch of places. >>>> But some things like read/write will return just having done a >>>> partial read/write? >>> >>> Huh? Should already be done? >>> >>>> Maybe something more cooperative would be easier? >>>> Or even user threads?? >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>>> on some OpenBSD platforms=2C like ppc/x86. >>> >>> These are available for OpenBSD already. Not sure why you synthesized. >>> >>>> >>>> - Jay >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Not sure how the formatting will come through..but yes. >>>> Hopefully on all processor architectures. >>>> >>>> >>>> "np" means "not portable"=2C ok >>>> >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi >>>> >>>> appropos suspend >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>>> >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>>> PTHREAD_SUSPEND_NP(3) >>>> >>>> NAME >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>>> pthread_resume_all_np - suspend and resume thread(s) >>>> >>>> SYNOPSIS >>>> #include=20 >>>> #include=20 >>>> >>>> int >>>> pthread_suspend_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_suspend_all_np(void)=3B >>>> >>>> int >>>> pthread_resume_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_resume_all_np(void)=3B >>>> >>>> DESCRIPTION >>>> The pthread_suspend_np() function interrupts the given thread >>>> and places >>>> it in a suspended state. >>>> >>>> The pthread_suspend_all_np() function interrupts all threads except the >>>> current thread and places them in a suspended state. >>>> >>>> The pthread_resume_np() function resumes a thread suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_all_np() function resumes all threads suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_np() and pthread_resume_all_np() functions >>>> have no ef- >>>> fect on threads that have not been suspended. >>>> >>>> Suspending and resuming a thread has an effect similar to that >>>> of receiv- >>>> ing a signal=2C namely that resumed system calls will return an >>>> error value >>>> of EINTR. >>>> >>>> RETURN VALUES >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>>> >>>> [ESRCH] No thread could be found corresponding to that >>>> specified by >>>> the given thread ID. >>>> >>>> The pthread_suspend_np() function fails if: >>>> >>>> [EDEADLK] Attempt to suspend the current thread. >>>> >>>> SEE ALSO >>>> pthread_cancel(3)=2C pthreads(3) >>>> >>>> STANDARDS >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > np() >>>> and pthread_resume_all_np() functions are non-portable and may not be >>>> supported with the above semantics on other POSIX systems. >>>> >>>> OpenBSD 4.5 May 31=2C 2007 >>>> 1 >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>>> >>>> - Jay >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> OpenBSD has good documentation.. (man pages) >>>> >>>> - Jay (phone) >>>> >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>>> >>>> Stefan=2C >>>> >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>>> >>>> Olaf >>>> >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>>> From: Tony Hosking=20 >>>> Reply-To: Tony Hosking=20 >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> To: Olaf Wagner=20 >>>> Cc: Jay K =2C m3devel=20 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>>> If so then we could work avoid the signals entirely (as we do on OS >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> ----- End forwarded message ----- >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C >>>> pthread_resume? If so then we could work avoid the signals entirely >>>> (as we do on OS X). All that is needed is implementation of >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>>> RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >> >> >> >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > 5 >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > n >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > 194 >> = > -- 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 Mon Oct 26 15:01:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:01:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay > Date: Mon, 26 Oct 2009 13:49:24 +0100 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Quoting Jay K : > > > WIndows threads are ok. > In the release branch, too? > > > OpenBSD are not currently=2C never have been. > Do we have a work-around or are we going to ignore this for the release? > > > Windows problems are probably in Trestle. > > Have been for many years apparently. > Do we wait for a fix here for RC4? > > I can see that you and Tony are quite busy, but there are no visible > changes for the release status. > > Olaf > > > =20 > > - Jay > > > > ---------------------------------------- > >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > >> From: wagner at elegosoft.com > >> To: hosking at cs.purdue.edu > >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >> > >> Hi again=2C > >> > >> I'm still uncertain regarding the thread status. Hudson hasn't built > >> anything for about a month=2C so there have been no check-ins to the > >> release branch. > >> > >> (1) Has the OpenBSD problem been fixed or worked around? > >> If so=2C what are the relevant changes that should me merged from > >> trunk? > >> > >> The ChangeLog shows a lot of commits on head... > >> > >> (2) Is there still a problem in Windows threads? > >> Or are we just chasing a general access violation due to an > >> unknown reason? > >> > >> Again=2C is this ongoing or should some changes be merged for > >> the release? > >> > >> Olaf > >> > >> Quoting Tony Hosking : > >> > >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: > >>> > >>>> ps: notice: > >>>> > >>>>>> resumed system calls will return an error value of EINTR > >>> > >>> Not a problem. We already cope with that in ThreadPThread. > >>> > >>>> We probably need to handle that in a bunch of places. > >>>> But some things like read/write will return just having done a > >>>> partial read/write? > >>> > >>> Huh? Should already be done? > >>> > >>>> Maybe something more cooperative would be easier? > >>>> Or even user threads?? > >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp > >>>> on some OpenBSD platforms=2C like ppc/x86. > >>> > >>> These are available for OpenBSD already. Not sure why you synthesized. > >>> > >>>> > >>>> - Jay > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> Not sure how the formatting will come through..but yes. > >>>> Hopefully on all processor architectures. > >>>> > >>>> > >>>> "np" means "not portable"=2C ok > >>>> > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi > >>>> > >>>> appropos suspend > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 > >>>> > >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > >>>> PTHREAD_SUSPEND_NP(3) > >>>> > >>>> NAME > >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C > >>>> pthread_resume_all_np - suspend and resume thread(s) > >>>> > >>>> SYNOPSIS > >>>> #include=20 > >>>> #include=20 > >>>> > >>>> int > >>>> pthread_suspend_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_suspend_all_np(void)=3B > >>>> > >>>> int > >>>> pthread_resume_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_resume_all_np(void)=3B > >>>> > >>>> DESCRIPTION > >>>> The pthread_suspend_np() function interrupts the given thread > >>>> and places > >>>> it in a suspended state. > >>>> > >>>> The pthread_suspend_all_np() function interrupts all threads except the > >>>> current thread and places them in a suspended state. > >>>> > >>>> The pthread_resume_np() function resumes a thread suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_all_np() function resumes all threads suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_np() and pthread_resume_all_np() functions > >>>> have no ef- > >>>> fect on threads that have not been suspended. > >>>> > >>>> Suspending and resuming a thread has an effect similar to that > >>>> of receiv- > >>>> ing a signal=2C namely that resumed system calls will return an > >>>> error value > >>>> of EINTR. > >>>> > >>>> RETURN VALUES > >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: > >>>> > >>>> [ESRCH] No thread could be found corresponding to that > >>>> specified by > >>>> the given thread ID. > >>>> > >>>> The pthread_suspend_np() function fails if: > >>>> > >>>> [EDEADLK] Attempt to suspend the current thread. > >>>> > >>>> SEE ALSO > >>>> pthread_cancel(3)=2C pthreads(3) > >>>> > >>>> STANDARDS > >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > > np() > >>>> and pthread_resume_all_np() functions are non-portable and may not be > >>>> supported with the above semantics on other POSIX systems. > >>>> > >>>> OpenBSD 4.5 May 31=2C 2007 > >>>> 1 > >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > >>>> > >>>> - Jay > >>>> > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> OpenBSD has good documentation.. (man pages) > >>>> > >>>> - Jay (phone) > >>>> > >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: > >>>> > >>>> Stefan=2C > >>>> > >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? > >>>> > >>>> Olaf > >>>> > >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- > >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 > >>>> From: Tony Hosking=20 > >>>> Reply-To: Tony Hosking=20 > >>>> Subject: Re: [M3devel] Status of threads for RC4? > >>>> To: Olaf Wagner=20 > >>>> Cc: Jay K =2C m3devel=20 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? > >>>> If so then we could work avoid the signals entirely (as we do on OS > >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C > >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> ----- End forwarded message ----- > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C > >>>> pthread_resume? If so then we could work avoid the signals entirely > >>>> (as we do on OS X). All that is needed is implementation of > >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and > >>>> RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >> > >> > >> > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > > 5 > >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > > n > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > > 194 > >> = > > > > > > -- > 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 hosking at cs.purdue.edu Mon Oct 26 15:07:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:07:55 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD user-level threading should work one way (using getcontext/ setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: > > Windows threads should be ok for release..though..there is > definitely divergence in head. > > There was really just one main problem in Win32 threads, a copy/ > paste error I made a few months ago. > > It is fixed in release. > > > > OpenBSD we know the fix but not sure we'll get to it. > > > > There are still problems with mentor and/or Juno and/or Trestle, all > Windows specific. > > To some extent there are problems going back years, but things seem > to be much worse lately. > > I'm still investigating. > > > > - Jay > > >> Date: Mon, 26 Oct 2009 13:49:24 +0100 >> From: wagner at elegosoft.com >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Quoting Jay K : >> >>> WIndows threads are ok. >> In the release branch, too? >> >>> OpenBSD are not currently=2C never have been. >> Do we have a work-around or are we going to ignore this for the >> release? >> >>> Windows problems are probably in Trestle. >>> Have been for many years apparently. >> Do we wait for a fix here for RC4? >> >> I can see that you and Tony are quite busy, but there are no visible >> changes for the release status. >> >> Olaf >> >>> =20 >>> - Jay >>> >>> ---------------------------------------- >>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>> From: wagner at elegosoft.com >>>> To: hosking at cs.purdue.edu >>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Hi again=2C >>>> >>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>> built >>>> anything for about a month=2C so there have been no check-ins to >>>> the >>>> release branch. >>>> >>>> (1) Has the OpenBSD problem been fixed or worked around? >>>> If so=2C what are the relevant changes that should me merged from >>>> trunk? >>>> >>>> The ChangeLog shows a lot of commits on head... >>>> >>>> (2) Is there still a problem in Windows threads? >>>> Or are we just chasing a general access violation due to an >>>> unknown reason? >>>> >>>> Again=2C is this ongoing or should some changes be merged for >>>> the release? >>>> >>>> Olaf >>>> >>>> Quoting Tony Hosking : >>>> >>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>> >>>>>> ps: notice: >>>>>> >>>>>>>> resumed system calls will return an error value of EINTR >>>>> >>>>> Not a problem. We already cope with that in ThreadPThread. >>>>> >>>>>> We probably need to handle that in a bunch of places. >>>>>> But some things like read/write will return just having done a >>>>>> partial read/write? >>>>> >>>>> Huh? Should already be done? >>>>> >>>>>> Maybe something more cooperative would be easier? >>>>>> Or even user threads?? >>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>> longjmp >>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>> >>>>> These are available for OpenBSD already. Not sure why you >>>>> synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 26 15:08:41 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:08:41 -0400 Subject: [M3devel] Fwd: Fwd: Re: Status of threads for RC4? References: <25DE2087-D1CB-4051-8D2B-B29040ABDCCE@cs.purdue.edu> Message-ID: 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 Begin forwarded message: > From: Tony Hosking > Date: 26 October 2009 10:08:20 GMT-04:00 > To: Jay K > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > On 26 Oct 2009, at 10:01, Jay K wrote: > >> >> Windows threads should be ok for release..though..there is >> definitely divergence in head. >> >> There was really just one main problem in Win32 threads, a copy/ >> paste error I made a few months ago. >> >> It is fixed in release. >> >> >> >> OpenBSD we know the fix but not sure we'll get to it. >> >> >> >> There are still problems with mentor and/or Juno and/or Trestle, >> all Windows specific. >> >> To some extent there are problems going back years, but things seem >> to be much worse lately. >> >> I'm still investigating. > > Probably worse because you are on multicore? So you see the races > more often? > >> >> >> >> - Jay >> >> >>> Date: Mon, 26 Oct 2009 13:49:24 +0100 >>> From: wagner at elegosoft.com >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Quoting Jay K : >>> >>>> WIndows threads are ok. >>> In the release branch, too? >>> >>>> OpenBSD are not currently=2C never have been. >>> Do we have a work-around or are we going to ignore this for the >>> release? >>> >>>> Windows problems are probably in Trestle. >>>> Have been for many years apparently. >>> Do we wait for a fix here for RC4? >>> >>> I can see that you and Tony are quite busy, but there are no visible >>> changes for the release status. >>> >>> Olaf >>> >>>> =20 >>>> - Jay >>>> >>>> ---------------------------------------- >>>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>>> From: wagner at elegosoft.com >>>>> To: hosking at cs.purdue.edu >>>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>>> >>>>> Hi again=2C >>>>> >>>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>>> built >>>>> anything for about a month=2C so there have been no check-ins to >>>>> the >>>>> release branch. >>>>> >>>>> (1) Has the OpenBSD problem been fixed or worked around? >>>>> If so=2C what are the relevant changes that should me merged from >>>>> trunk? >>>>> >>>>> The ChangeLog shows a lot of commits on head... >>>>> >>>>> (2) Is there still a problem in Windows threads? >>>>> Or are we just chasing a general access violation due to an >>>>> unknown reason? >>>>> >>>>> Again=2C is this ongoing or should some changes be merged for >>>>> the release? >>>>> >>>>> Olaf >>>>> >>>>> Quoting Tony Hosking : >>>>> >>>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>>> >>>>>>> ps: notice: >>>>>>> >>>>>>>>> resumed system calls will return an error value of EINTR >>>>>> >>>>>> Not a problem. We already cope with that in ThreadPThread. >>>>>> >>>>>>> We probably need to handle that in a bunch of places. >>>>>>> But some things like read/write will return just having done a >>>>>>> partial read/write? >>>>>> >>>>>> Huh? Should already be done? >>>>>> >>>>>>> Maybe something more cooperative would be easier? >>>>>>> Or even user threads?? >>>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>>> longjmp >>>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>>> >>>>>> These are available for OpenBSD already. Not sure why you >>>>>> synthesized > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:13:15 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:13:15 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Tony, I understand "as long as OpenBSD pthreads is userthreads, we might as well use our own" but I don't understand "pthread threading is unlikely to work on OpenBSD". Shouldn't it work pretty ok actually? Except for the suspend/resume stuff? It should be easy to have OpenBSD custom stuff like Darwin has custom stuff, right? I was of the impression that the stack could merely be heap allocated, but perhaps it takes more than that? get/set/make/swapcontext are not available as far as I know on OpenBSD, but I do have them working on OpenBSD/x86 and OpenBSD/ppc (no OpenBSD/ppc currently to test on, but not a big deal to bring up it and others). Regarding Windows I did remove the idle thread cache, which is good and bad. The removal was mismotivated, and it might be a good thing, might be a bad thing. - Jay CC: wagner at elegosoft.com; m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Date: Mon, 26 Oct 2009 10:07:55 -0400 OpenBSD user-level threading should work one way (using getcontext/setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay Date: Mon, 26 Oct 2009 13:49:24 +0100 From: wagner at elegosoft.com To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Quoting Jay K : WIndows threads are ok. In the release branch, too? OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? Windows problems are probably in Trestle. Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf =20 - Jay ---------------------------------------- Date: Mon=2C 26 Oct 2009 10:35:08 +0100 From: wagner at elegosoft.com To: hosking at cs.purdue.edu CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Hi again=2C I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month=2C so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so=2C what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again=2C is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : On 21 Oct 2009=2C at 20:12=2C Jay K wrote: ps: notice: resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms=2C like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:57:45 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:57:45 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, obviously..it might have to do with if the text windows/controls/widgets/vbts are coverd up or when they are uncovered. I believe I've seen the heap corruption now once in an older 5.2.6... - Jay > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 09:46:06 +0000 > > > Here's a better view of the problem, again in 5.2.6. > Notice 00e15888 repeating in both threads' parameters. > This seems like a simple "add a lock use somewhere" problem > but I have little idea of Trestle's locking protocols, > apparently a complicated topic. > You know, somehow redisplay/reshape need more serialization, > but I don't know exactly what. > > > The call to Capture fails with a dereference of NIL in the LOCK use. > > > The unusual part I think is: > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > > > That's probably not how Redisplay is normally used? > > > I'll look again at head and see if the behavior resembles 5.2.6. > > > 0:000> .logopen c:\2.log > Opened log file 'c:\2.log' > 0:000> ~*kv99 > . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr Args to Child > 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] > 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] > 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] > 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] > 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] > 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] > 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] > 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] > 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] > 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] > 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] > 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] > 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff > WARNING: Stack unwind information not available. Following frames may be wrong. > 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 > > > 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr Args to Child > WARNING: Stack unwind information not available. Following frames may be wrong. > 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet > 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] > 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] > 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] > 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] > 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] > 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] > 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] > 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] > 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > > > > > > > > > > full disclosure: > > This version has the bug where non-standalone NT apps don't do set operations correctly. > > > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > > I'll retest with standalone. > > > > > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > > > > > - Jay > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Mon, 26 Oct 2009 02:45:57 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > > > 0:000> ~*k > > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > > 0510fec0 00391ebd kernel32!Sleep+0xf > > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > > 0520fe30 7e418816 USER32!GetDC+0x6d > > 0520fe98 7e4189cd USER32!GetDC+0x14f > > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > > 0540fee4 00391ebd kernel32!Sleep+0xf > > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > > 9] > > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > > 0] > > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > > 0] > > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 0:000> > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > > > (1374.1548): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sun, 25 Oct 2009 11:55:42 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > > > (a70.158c): Access violation - code c0000005 (first chance) > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0:000> > > > > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sat, 24 Oct 2009 14:19:07 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > > > quick experiment: > > #include > > #include > > int main() > > { > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > > > return 0; > > } > > > > => > > 00350000 > > 00360000 > > 00370000 > > > > - Jay > > > > > > ________________________________ > > > > From: hosking at cs.purdue.edu > > To: jay.krell at cornell.edu > > Date: Fri, 23 Oct 2009 14:07:02 -0400 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > > > > > Tony, a few months ago I changed the NT pagesize to 64K, > > so I could simply allocate with VirtualAlloc, and not waste any. > > You think that could be a problem? > > Most platforms use 8K. > > This used to have to relate to the hardware, when there > > was VM-synchronized GC, but no longer. > > > > Also I just hit control-c and: > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > > > > > We've discussed before that things are not control-c safe. > > Maybe related??? > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes > > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > > I've also grown stacks to rule that out. > > Here are some of the crashes. > > > > > > > > (adc.f8): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > > m3core!RTCollector__Move+0x51: > > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > > 0:000> r esi > > esi=001ffffc > > 0:000> k > > ChildEBP RetAddr > > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > (1d8.148): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k 999 > > ChildEBP RetAddr > > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > > 0:000> > > > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k99 > > ChildEBP RetAddr > > 034bf1b0 005e6067 ntdll!DbgBreakPoint > > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > > > > > > > > > > > *** > > *** runtime error: > > *** <*ASSERT*> failed. > > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > > ......... ......... ... more frames ... > > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k999 > > ChildEBP RetAddr > > 0290eb14 005e6067 ntdll!DbgBreakPoint > > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > - Jay > > > > > > > > [snip] > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 05:28:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 00:28:29 -0400 Subject: [M3devel] build status on Vista Message-ID: <4AE63DA2.1E75.00D7.1@scires.com> I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 06:10:17 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 01:10:17 -0400 Subject: [M3devel] organization of scripts folder Message-ID: <4AE6476E.1E75.00D7.1@scires.com> I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 06:21:43 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 26 Oct 2009 22:21:43 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. > > So, I wound up deleting everything and checking out everything > afresh on my Windows Vista platform. > > I've run a new build against everything (all packages in > PkgInfo.txt). This is against the HEAD branch (I think). > > Here are some errors that occur during the build. > > The last two have failed in the past, but I get different output > now. The first one is new. > > C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: > quake runtime > error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line > 263: syntax err > or: "end" or "else" expected after "if" > > --procedure-- -line- -file--- > include_dir -- > 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib > \NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\m3-sys\m3cc>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > gmake --version | findstr.exe /c:"GNU Make" > 'gmake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gmake because it does not appear to be GNU make > gnumake --version | findstr.exe /c:"GNU Make" > 'gnumake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gnumake because it does not appear to be GNU make > /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make > /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make > /usr/local/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gmake because it does not appear to be GNU make > /usr/local/gnumake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gnumake because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line > 71: quake > untime error: no GNU make found > > --procedure-- -line- -file--- > error -- > ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ > src/gnumake > common > include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile > 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C > :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcT > ok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\sr > c\m3makefile > 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT > 386\m3make.args > > Fatal Error: package build failed > > Regards, > Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 08:13:05 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 03:13:05 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> Message-ID: <4AE66434.1E75.00D7.1@scires.com> Jay: The problem is with the following line: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 Notice the weird path. The following does work: C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 Not sure why it is trying to go down the "pkg" tree to find an EXE since these are all in "bin". Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". Here is the verbose compiler output: C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in ..\NT386 --- cd ..\NT386 ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src\m3makefile 5 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.01 2 removing temporary files 0.01 1 garbage collection 0.09 other --------------------------------------------------- 0.10 TOTAL rm m3make.args cd ..\src Regards, Randy Coleburn >>> 10/27/2009 1:21 AM >>> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:01:36 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:01:36 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE66434.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> <4AE66434.1E75.00D7.1@scires.com> Message-ID: <677BA053-A1E4-4EA6-849C-8941ECD9ABC5@hotmail.com> I meant cvsup but ok, that too sort of. If "program" lacks capital "p" file is only in pkg store. I'll see about the slashes. - Jay (phone) On Oct 27, 2009, at 12:13 AM, "Randy Coleburn" wrote: > Jay: > > The problem is with the following line: > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > > Notice the weird path. > > The following does work: > > C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 > > Not sure why it is trying to go down the "pkg" tree to find an EXE > since these are all in "bin". > > Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". > > Here is the verbose compiler output: > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 - > verbose > EVAL ("C:\cm3\bin\cm3.cfg") > --- building in ..\NT386 --- > > cd ..\NT386 > ignoring ..\src\m3overrides > > EVAL ("m3make.args") > rm .M3SHIP > rm .M3OVERRIDES > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok > \NT386\ktok ..\src\Calc.t -o CalcTok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\src\m3makefile > 5 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT386\m3make.args > > Fatal Error: package build failed > > seconds #times operation > 0.01 2 removing temporary files > 0.01 1 garbage collection > 0.09 other > --------------------------------------------------- > 0.10 TOTAL > > rm m3make.args > cd ..\src > > Regards, > Randy Coleburn > > > >>> 10/27/2009 1:21 AM >>> > m3cc isn't supposed to build for NT, nor probably the others. I > tried a simple filtering of m3cc weeks ago but it broke much, oddly. > That specific error in cvsup not expected. Can you look closer and > try to fix it? > > - Jay (phone) > > On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" > wrote: > >> I discovered that I wasn't getting all the updates via CVS. Not >> sure what when wrong, but I think it had to do with a prior update >> pointing to one of the release engineering branches and I couldn't >> seem to get it to update from the HEAD anymore. >> >> So, I wound up deleting everything and checking out everything >> afresh on my Windows Vista platform. >> >> I've run a new build against everything (all packages in >> PkgInfo.txt). This is against the HEAD branch (I think). >> >> Here are some errors that occur during the build. >> >> The last two have failed in the past, but I get different output >> now. The first one is new. >> >> C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: >> quake runtime >> error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line >> 263: syntax err >> or: "end" or "else" expected after "if" >> >> --procedure-- -line- -file--- >> include_dir -- >> 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib >> \NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\m3-sys\m3cc>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> gmake --version | findstr.exe /c:"GNU Make" >> 'gmake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gmake because it does not appear to be GNU make >> gnumake --version | findstr.exe /c:"GNU Make" >> 'gnumake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gnumake because it does not appear to be GNU make >> /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/pkg/bin/gmake because it does not appear to be GNU >> make >> /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/sfw/bin/gmake because it does not appear to be GNU >> make >> /usr/local/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gmake because it does not appear to be GNU make >> /usr/local/gnumake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gnumake because it does not appear to be GNU >> make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", >> line 71: quake >> untime error: no GNU make found >> >> --procedure-- -line- -file--- >> error -- >> ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ >> src/gnumake >> common >> include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile >> 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> The system cannot find the path specified. >> "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime >> error: exit 1: C >> :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o CalcT >> ok.i3 >> >> --procedure-- -line- -file--- >> exec -- >> _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl >> _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl >> token 73 C:\cm3\pkg\parserlib\src\parser.tmpl >> include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\sr >> c\m3makefile >> 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\NT >> 386\m3make.args >> >> Fatal Error: package build failed >> >> Regards, >> Randy Coleburn > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:02:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:02:28 -0700 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target > install > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of > platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, > CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Oct 27 11:57:13 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 27 Oct 2009 11:57:13 +0100 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 rcoleburn at scires.com Tue Oct 27 15:46:06 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 10:46:06 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Message-ID: <4AE6CE5D.1E75.00D7.1@scires.com> Olaf: I tried the -A option, but ran into a bunch of errors. Perhaps the fault lies with TortoiseCVS or CVSNT, but I could never get it to work right. I hadn't made any mods to the source tree on the Vista box, so blowing everything away and starting over didn't cause me to lose anything. Of course, that's not the case on my XP box, so I've got to get to the root of this problem at some point. Thanks for the help. Regards, Randy >>> Olaf Wagner 10/27/2009 6:57 AM >>> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 16:08:39 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 11:08:39 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> References: <4AE6476E.1E75.00D7.1@scires.com> <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> Message-ID: <4AE6D3A7.1E75.00D7.1@scires.com> I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 00:03:50 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 28 Oct 2009 16:03:50 -0700 (PDT) Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6D3A7.1E75.00D7.1@scires.com> Message-ID: <394893.44350.qm@web23608.mail.ird.yahoo.com> Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends? support already present in WebScape and DeckScape? web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed? checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. ? --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts.? Not sure if anyone else uses them. ? Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1.? Start the IDE. 2.? Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3.? Open a cm3 command shell window in a particular folder.? I've integrated this with the Explorer context menu for even greater utility. 4.? Automate building of multiple packages based on the concept of a project. etc. ? Perhaps others would have similar scripts that should be available as part of the install. ? So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included.? End users are free to use the scripts, not use them, or even remove them after the product is installed. ? What do others think? ? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. ?- Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. ? Here is the current folder structure: ? scripts +---config +---doc +---examples +---iphone |?? \---1 +---python +---regression \---win ? In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install.? Later, the other subfolders were added, including the one named "win". ? It seems there are perhaps multiple intentions for the scripts folder.? For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3.? There are other scripts that would be useful for certain target platforms as part of the installed system.? There may be other scripts useful for testing. ? I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms.? This script will replace some of the old ones I have out there.? It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista.? I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. ? Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. ? As a first cut, I propose something along the following lines: ? scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin +???+---windows = dev scripts written for Microsoft Windows (BAT, CMD) +?? +---posix = dev scripts written for unix shell (sh, bash, etc.) +?? \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install +?? +---common = scripts common to all target platforms+???+---windows = BAT/CMD scripts for Microsoft Windows +?? +---posix = shell scripts for POSIX platforms (sh, bash, etc.) +?? +---python = scripts written in python (applicable to any platform with python) +?? \---XXX = scripts for target platform XXX (XXX is name of platform) +???????????? (assuming XXX needs something special not covered above) \---test = scripts used for regression testing ????+---windows = test scripts written for Microsoft Windows (BAT, CMD) ??? +---posix = test scripts written for unix shell (sh, bash, etc.) ??? \---python = test scripts written in python ? What do you think? ? Regards, Randy Coleburn ? ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 06:00:34 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 05:00:34 +0000 (GMT) Subject: [M3devel] organization of scripts folder Message-ID: <689127.6955.qm@web23601.mail.ird.yahoo.com> To be clearer and explain with some video material about embedded Obliq in DeckScape mail news and web browser, take a look at: SRC Video Report 141b that accompanied SRC Research Report 142, Collaborative Active Textbooks available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-142.html the digitized videotape from here uploaded by the author: http://www.youtube.com/watch?v=hbxjYq1YK38 Now about Webcard by Marc Brown the integrated mail reader with folders (tags), news reader and web browser described in SRC Research Report 139a available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/SRC-139a.html and the digitized Video report 139b from: http://www.ibiblio.org/openvideo/video/chi/chi97_03_m1.mpg Also a feature SRC Research Report 140, Zippers from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-140.html And the SRC Research Report 135a, DeckScape: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-135a.html and its accompanying digitized videotape, Video Report 135b from: http://www.open-video.org/details.php?videoid=5024 Related with Zeus, SRC Research Report 75, algorithm animation system related with distributed active objects application from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-075.html and a closely related digitized videotape from: http://open-video.org/details.php?videoid=8118 Also the SRC Research Report 110a, Algorithm Animation Using 3D Interactive Graphics available from http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-110a.html and the accompanying SRC Video Report 110b http://www.youtube.com/watch?v=zIgu9q0vVc0 besides the closely related and obliq based SRC Research Report 128a, A Library for Visualizing Combinatorial Structures http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-128a.html and the accompanying SRC Video Report 128b http://www.youtube.com/watch?v=EIOrizawnsc And two videos more for other applications made on Forms VBt: http://www.open-video.org/details.php?videoid=8107 and trestle: http://www.open-video.org/details.php?videoid=8143 Thanks in advance and hope it helps to better document video reports --- El mi?, 28/10/09, Daniel Alejandro Benavides D. escribi?: De: Daniel Alejandro Benavides D. Asunto: Re: [M3devel] organization of scripts folder Para: "" , "Randy Coleburn" Fecha: mi?rcoles, 28 octubre, 2009 6:03 Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends support already present in WebScape and DeckScape web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms+ +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn From wagner at elegosoft.com Thu Oct 29 10:14:51 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 29 Oct 2009 10:14:51 +0100 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Hi Randy, I think it is a good idea to clean up and restructure the scripts folder. The current layout has grown and was never 'designed'. However, we should make sure that nothing breaks when we move scripts around, especially for regression testing in Tinderbox and Hudson. So changing things is fine as long as we consider and correct the potential damage. As a backup, we could provide a script which creates symbolic links for some current scripts which are called from outside the scripts package itself in our test frameworks. Olaf Quoting Randy Coleburn : > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target install > > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn -- 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 hendrik at topoi.pooq.com Thu Oct 29 15:40:56 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Thu, 29 Oct 2009 10:40:56 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> References: <4AE6476E.1E75.00D7.1@scires.com> <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Message-ID: <20091029144056.GA24509@topoi.pooq.com> On Thu, Oct 29, 2009 at 10:14:51AM +0100, Olaf Wagner wrote: > Hi Randy, > > I think it is a good idea to clean up and restructure the scripts > folder. The current layout has grown and was never 'designed'. Speaking as a naive Modula 3 user and installer (well, not so naive after all these years), I found the scripts confusing. The biggest problem was to distinguish scripts that were meant to be used directly by the user and those meant to be used by other scripts. I also found that the scripts were not adequately documented -- oh, they were documented enough that once you were familiar with them, you'd know where to look for detaile you had forgotten, but not so a beginner would find it easy to figure which to use in the first place. Any documentation of reorganisation that makes these distinctions clear would be welcome. > > However, we should make sure that nothing breaks when we move scripts > around, especially for regression testing in Tinderbox and Hudson. Well, if reorganising makes it easier to get our current release through regression testing, I'm all for it. But I'd say it's really important to get a release out -- at the moment we don't really have one that's adequate for someone newly sold on the merits of Modula 3. So if there's a signoficant risk of a reorganisatin delaying things, perhaps we should hold off a bit. It seems that the current RC3 is not really adequate -- important components like m3gdb don't install properly from the binary downloads directory. And RC4 is held up on regression testing which shows significant problems in a few packages (Juno ocmes to ming). These problems appear to involve the interaction between the package, garbage colletion, multitasking, and the details of particular platforms. They are difficult problems, and it is not at all clear that they can be solved quickly, or even whether they are regressions. I'd very much like to see a RC4 that fixes the problems we've already fixed in RC3. Some of them seem to be installation issues. At least, with a current RC4, flaws and all, we would know for sure whether the installation problems in RC3 have really been fixed. > So changing things is fine as long as we consider and correct the > potential damage. As a backup, we could provide a script which creates > symbolic links for some current scripts which are called from outside > the scripts package itself in our test frameworks. That could help. -- hendrik > > Olaf > From rcoleburn at scires.com Thu Oct 29 20:26:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 29 Oct 2009 15:26:29 -0400 Subject: [M3devel] non-deterministic behavior on Windows Message-ID: <4AE9B312.1E75.00D7.1@scires.com> Something is wrong, but I don't know what yet. I'm seeing non-deterministic behavior on Windows XP and Vista. I am building against the head branch. On multiple runs of each build cycle, I am getting different errors. That is, sometime a package will fail to build/ship on one build cycle, then it will work on the next. I've even gone back and tried to rebuild or reship individual packages that failed and most always they will build or ship fine. For a while, I thought it might be my antivirus program. But I am getting same behavior on two different machines and each machine has a different AV program. I'll keep investigating, but something is definitely wrong. I am going to try uninstalling my AV program on one machine just to see if that makes any difference. Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 29 22:32:52 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 29 Oct 2009 14:32:52 -0700 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <4AE9B312.1E75.00D7.1@scires.com> References: <4AE9B312.1E75.00D7.1@scires.com> Message-ID: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> AV programs are notorious for seemingly nondeterministic problems. Sharing violation? Access denied? File not found? Definitely try disabling or uninstalling them. - Jay (phone) On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" wrote: > Something is wrong, but I don't know what yet. > > I'm seeing non-deterministic behavior on Windows XP and Vista. > > I am building against the head branch. > > On multiple runs of each build cycle, I am getting different > errors. That is, sometime a package will fail to build/ship on one > build cycle, then it will work on the next. > > I've even gone back and tried to rebuild or reship individual > packages that failed and most always they will build or ship fine. > > For a while, I thought it might be my antivirus program. But I am > getting same behavior on two different machines and each machine has > a different AV program. > > I'll keep investigating, but something is definitely wrong. > > I am going to try uninstalling my AV program on one machine just to > see if that makes any difference. > > Regards, > Randy Coleburn From dabenavidesd at yahoo.es Thu Oct 29 23:20:32 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 22:20:32 +0000 (GMT) Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> Message-ID: <552644.47206.qm@web23601.mail.ird.yahoo.com> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > From rcoleburn at scires.com Fri Oct 30 05:25:50 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Fri, 30 Oct 2009 00:25:50 -0400 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <552644.47206.qm@web23601.mail.ird.yahoo.com> References: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> <552644.47206.qm@web23601.mail.ird.yahoo.com> Message-ID: <4AEA3164.1E75.00D7.1@scires.com> Ok, I think maybe the AntiVirus is causing the problems. I upgraded to a new version of my AV program a couple of weeks ago. After uninstalling it completely, the builds seem to work again. Perhaps the trouble is due to fact that I "upgraded" an in-place installation instead of first uninstalling completely. I am going to try and reinstall my AV program and see how it fares. Regards, Randy >>> "Daniel Alejandro Benavides D." 10/29/2009 6:20 PM >>> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 14:40:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? Message-ID: I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 15:21:43 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 17:07:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 16:07:29 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: ok, it's not always 12 bytes in and 4b4. but anyway.. Tony does this make sense? And the atached? I seem to have it failing on an almost consistent address now. So I set write breakpoints "around" it. The object is often at 0x1cf0008. So I set write breakpoints at 0x1cf0000, 0x1cf0004, 0x1cf0008. All the writes are within RTCollector. Hm. Or so I thought. The first few are not always. Surely some of the writes are correct. And some are not? I attached a debugging log. It just goes like: bp main g ba w4 0x1cf0000 "k;g" ba w4 0x1cf0004 "k;g" ba w4 0x1cf0008 "k;g" g I also tried: ba w4 0x1cf0008 "~*k;g" etc. to get all stacks but it didn't seem useful. You know, what if two threads touch an address at about the same time? The debugger might be ambiguous. But it seems nothing else was nearby. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: Re: [M3devel] debugging paranoidgc? The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 1.log Type: application/octet-stream Size: 25716 bytes Desc: not available URL: From mika at async.async.caltech.edu Sat Oct 31 17:11:42 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:11:42 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site Message-ID: <20091031161142.57E771A2097@async.async.caltech.edu> Hello m3devel, I'm running into problems with the current release candidate. I'm attaching a backtrace from one crash, but I think I also am seeing deadlocks in the threading system---my application goes catatonic. Of course it *is* possible it's a bug in my application, but it works on PM3 and on CM3 on PPC_DARWIN. Finally I'm still concerned about threading performance but in the light of the bugs it's hard to say much about it yet, I think... (The program in question is a highly multithreaded stock market simulator.) Mika ============================================================ *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) show args Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". (m3gdb) where #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. ) at ../src/runtime/common/RTProcess.m3:65 #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. ) at ../src/runtime/common/RTError.m3:118 #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTError.m3:40 #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:79 #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:39 #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:47 #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTHooks.m3:110 #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. ) from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:116 #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktIsolator.m3:514 #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../src/Main.m3:734 #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:400 #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:114 #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:123 ---Type to continue, or q to quit--- #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 #23 0x00000000004040de in _start () (m3gdb) up 15 #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) at ../src/thread/PTHREAD/ThreadPThread.m3:589 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; Current language: auto; currently Modula-3 (m3gdb) print r $1 = 11 (m3gdb) ============================================================ From mika at async.async.caltech.edu Sat Oct 31 17:15:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:15:14 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <20091031161514.C7E441A2097@async.async.caltech.edu> More details about the "catatonic" case. It's pretty bad. Even ctrl-\ won't wake it up properly. Ctrl-\ is supposed to cause the program to abort and dump core. It does nothing to my program now! And I think I've "lost threads" before, too. Btw, (90)ginger:~/t>uname -a FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 I'm happy to help debug if someone can give me some pointers... Mika ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) cont Continuing. *** *** runtime error: *** aborted ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) where #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 #2 0x0000000803780da0 in ThreadPThread__sigsuspend () at ../src/thread/PTHREAD/ThreadPThreadC.c:117 #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code 28 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 #4 #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:217 #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:152 #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktAsset.m3:117 #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:469 #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 #16 0x0000000000000000 in ?? () (m3gdb) Mika Nystrom writes: >Hello m3devel, > >I'm running into problems with the current release candidate. >I'm attaching a backtrace from one crash, but I think I also am seeing >deadlocks in the threading system---my application goes catatonic. >Of course it *is* possible it's a bug in my application, but it works >on PM3 and on CM3 on PPC_DARWIN. > >Finally I'm still concerned about threading performance but in the light >of the bugs it's hard to say much about it yet, I think... > >(The program in question is a highly multithreaded stock market >simulator.) > > Mika > >============================================================ > >*** >*** runtime error: >*** <*ASSERT*> failed. >*** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >*** > > >Program received signal SIGABRT, Aborted. >0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >(m3gdb) show args >Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws > -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". >(m3gdb) where >#0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >#1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >#2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >#3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. >) at ../src/runtime/common/RTProcess.m3:65 >#4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. >) at ../src/runtime/common/RTError.m3:118 >#5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTError.m3:40 >#6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:79 >#7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:39 >#8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:47 >#11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTHooks.m3:110 >#14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. >) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >#15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. >) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >#16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktPlace.m3:116 >#17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktIsolator.m3:514 >#18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. >) at ../src/Main.m3:734 >#19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:400 >#20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:114 >#21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. >) at ../src/runtime/common/RTLinker.m3:123 >---Type to continue, or q to quit--- >#22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 >#23 0x00000000004040de in _start () >(m3gdb) up 15 >#15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 >589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; >Current language: auto; currently Modula-3 >(m3gdb) print r >$1 = 11 >(m3gdb) > >============================================================ > > From mika at async.async.caltech.edu Sat Oct 31 19:02:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:02:14 -0700 Subject: [M3devel] m3 RC In-Reply-To: <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> Message-ID: <20091031180214.87E3B1A209C@async.async.caltech.edu> Hi Tony, Yes the thing I just posted to m3devel has @M3paranoidgc. Mika Tony Hosking writes: >That assertion failure is a serious violation of the collector >invariants an suggests that a reference from the stack has not been >processed properly. Is there are red zone on AMD64_FreeBSD? Can you >try running @M3paranoidgc to force heavy checking of GC invariants? > > >On 31 Oct 2009, at 00:46, Mika Nystrom wrote: > >> >> Hi Jay & Tony, sorry to do this but I sent this email to m3devel and I >> don't think it went through. I thought you might be interested :) >> >> Mika >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: RTCollector problems in 5.8.3 RC >> Date: Thu, 29 Oct 2009 13:07:53 -0700 >> From: Mika Nystrom >> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >> >> Hello again, >> >> Well I installed the whole archive from the RC and recompiled rather >> than trying to update to the head. >> >> Here are the files I installed from: >> >> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >> cm3-src-all-5.8.3-RC3.tgz >> >> And this gets much further. Mentor works, e.g. >> >> But after running one of my programs for a while I see the following >> troubling stuff. I don't think the code is doing anything >> particularly >> strange... (this particular code is involved in recycling cons cells >> in >> the Scheme interpreter rather than leaving them for the GC). >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/runtime/common/RTCollector.m3", line 2284 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> re >> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >> code 46 in symbol table. >> ) at ../src/runtime/common/RTCollector.m3:2284 >> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:711 >> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/SchemePrimitive.m3:550 >> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:574 >> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:664 >> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:461 >> - ---Type to continue, or q to quit--- >> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >> 26 in symbol table. >> ) at ../src/Scheme.m3:592 >> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMSCode.m3:176 >> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMS.m3:225 >> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >> #29 0x0000000000000000 in ?? () >> (m3gdb) up 16 >> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >> cons=16_00007ffff1dbcc30) >> at ../src/Scheme.m3:711 >> 711 t.freePairs := cons >> Current language: auto; currently Modula-3 >> (m3gdb) print cons >> $1 = 16_00007ffff1dbcc30 >> (m3gdb) print t.freePairs >> Object has no field or method named "freePairs". >> (m3gdb) whatis cons >> type = GCOMSCode.Pair >> (m3gdb) print t >> $2 = (*16_0000000806b82018*) OBJECT END >> (m3gdb) list >> 706 END; >> 707 >> 708 p.first := SYMrip; >> 709 >> 710 p.rest := t.freePairs; >> 711 t.freePairs := cons >> 712 END >> 713 END ReturnCons; >> 714 >> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >> { E } = >> (m3gdb) >> ... >> (m3gdb) list >> 2279 INC(checkStoreTraced); (* race, so only >> approximate *) >> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >> PageToRef(p) DO >> 2281 TRY >> 2282 RTOS.LockHeap(thread^); >> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >> 2284 <*ASSERT NOT h.gray*> <===== here >> 2285 WITH d = page.desc DO >> 2286 IF h.dirty THEN >> 2287 <*ASSERT NOT d.clean*> >> 2288 ELSE >> (m3gdb) >> >> top shows: >> >> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >> COMMAND >> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >> gcomsmaster >> >> Mika >> >> ------- End of Forwarded Message > From hosking at cs.purdue.edu Sat Oct 31 19:05:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:05:55 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180214.87E3B1A209C@async.async.caltech.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> <20091031180214.87E3B1A209C@async.async.caltech.edu> Message-ID: <00188550-EFBC-43DD-9F4B-1F11163DDD52@cs.purdue.edu> Can you try to update to the latest ThreadPThread on the RC branch? It looks like you are using an older one. On 31 Oct 2009, at 14:02, Mika Nystrom wrote: > Hi Tony, > > Yes the thing I just posted to m3devel has @M3paranoidgc. > > Mika > > Tony Hosking writes: >> That assertion failure is a serious violation of the collector >> invariants an suggests that a reference from the stack has not been >> processed properly. Is there are red zone on AMD64_FreeBSD? Can you >> try running @M3paranoidgc to force heavy checking of GC invariants? >> >> >> On 31 Oct 2009, at 00:46, Mika Nystrom wrote: >> >>> >>> Hi Jay & Tony, sorry to do this but I sent this email to m3devel >>> and I >>> don't think it went through. I thought you might be interested :) >>> >>> Mika >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >>> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: RTCollector problems in 5.8.3 RC >>> Date: Thu, 29 Oct 2009 13:07:53 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >>> >>> Hello again, >>> >>> Well I installed the whole archive from the RC and recompiled rather >>> than trying to update to the head. >>> >>> Here are the files I installed from: >>> >>> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >>> cm3-src-all-5.8.3-RC3.tgz >>> >>> And this gets much further. Mentor works, e.g. >>> >>> But after running one of my programs for a while I see the following >>> troubling stuff. I don't think the code is doing anything >>> particularly >>> strange... (this particular code is involved in recycling cons cells >>> in >>> the Scheme interpreter rather than leaving them for the GC). >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2284 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> re >>> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >>> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >>> code 46 in symbol table. >>> ) at ../src/runtime/common/RTCollector.m3:2284 >>> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:711 >>> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/SchemePrimitive.m3:550 >>> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:574 >>> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:664 >>> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:461 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >>> 26 in symbol table. >>> ) at ../src/Scheme.m3:592 >>> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMSCode.m3:176 >>> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMS.m3:225 >>> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >>> 35 in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >>> #29 0x0000000000000000 in ?? () >>> (m3gdb) up 16 >>> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >>> cons=16_00007ffff1dbcc30) >>> at ../src/Scheme.m3:711 >>> 711 t.freePairs := cons >>> Current language: auto; currently Modula-3 >>> (m3gdb) print cons >>> $1 = 16_00007ffff1dbcc30 >>> (m3gdb) print t.freePairs >>> Object has no field or method named "freePairs". >>> (m3gdb) whatis cons >>> type = GCOMSCode.Pair >>> (m3gdb) print t >>> $2 = (*16_0000000806b82018*) OBJECT END >>> (m3gdb) list >>> 706 END; >>> 707 >>> 708 p.first := SYMrip; >>> 709 >>> 710 p.rest := t.freePairs; >>> 711 t.freePairs := cons >>> 712 END >>> 713 END ReturnCons; >>> 714 >>> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >>> { E } = >>> (m3gdb) >>> ... >>> (m3gdb) list >>> 2279 INC(checkStoreTraced); (* race, so only >>> approximate *) >>> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >>> PageToRef(p) DO >>> 2281 TRY >>> 2282 RTOS.LockHeap(thread^); >>> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >>> 2284 <*ASSERT NOT h.gray*> <===== here >>> 2285 WITH d = page.desc DO >>> 2286 IF h.dirty THEN >>> 2287 <*ASSERT NOT d.clean*> >>> 2288 ELSE >>> (m3gdb) >>> >>> top shows: >>> >>> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >>> COMMAND >>> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >>> gcomsmaster >>> >>> Mika >>> >>> ------- End of Forwarded Message >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:08:05 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:08:05 -0700 Subject: [M3devel] m3 RC In-Reply-To: <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> Message-ID: <20091031180805.9B6091A209C@async.async.caltech.edu> Tony this is what I see: 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; This is not from the head but from the RC archive from the M3 site: cm3-src-all-5.8.3-RC3.tgz Mika Tony Hosking writes: > >--Apple-Mail-17--467794722 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >This looks like a bogus line number for 1.123.2.4. Are you somehow >using an older version of ThreadPThread.m3 (1.123.2.3)? > >On 31 Oct 2009, at 00:47, Mika Nystrom wrote: > >> >> same comment as previous email >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: and another crash.... >> Date: Thu, 29 Oct 2009 13:12:54 -0700 >> From: Mika Nystrom >> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >> >> >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> - ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >> envp=0x7fffffffdf58) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) >> >> Not sure if this could be related to the crash in RTCollector. >> >> Mika >> >> ------- End of Forwarded Message > > >--Apple-Mail-17--467794722 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">This = >looks like a bogus line number for 1.123.2.4.  Are you somehow = >using an older version of ThreadPThread.m3 = >(1.123.2.3)?
color=3D"#0000FF" face=3D"'Gill Sans'">style=3D"font-size: = >medium;">
>
On 31 Oct 2009, = >at 00:47, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

same comment as previous email

------- = >Forwarded Message

Return-Path: <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
X-Original-To: mika
Delivered-To:
href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Recei= >ved: by async.async.caltech.edu (Postfix, from userid 1004)
class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: from = >async.async.caltech.edu (localhost [127.0.0.1])
class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091;
class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >Oct 2009 13:12:54 -0700 (PDT)
To: href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com
cc: = >href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Subje= >ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >-0700
From: Mika Nystrom <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
Message-Id: <
href=3D"mailto:20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >9201254.780EB1A2094 at async.async.caltech.edu>


WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >ABC:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in abort = >() from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in Crash = >(msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/runtime/common/RTProcess.m3:65
#4  0x0000000803768ab2 in = >EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) at = >../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa in = >MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 in = >Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:79
#7  0x0000000803768c3c = >in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:39
#8 = > 0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type code = >30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#9  0x0000000803778eab = >in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee in = >DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e in = >InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab in = >Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 in = >ReportFault (module=3DInvalid C/C++ type code 35 in symbol table.
) = >at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf in = >_m3_fault (arg=3DInvalid C/C++ type code 39 in symbol table.
)
= >  from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:589
#16 = >0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in Init = >(t=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >(mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody (m=3DInvalid = >C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
- ---Type <return> to = >continue, or q <return> to quit---
#22 0x0000000000404194 in = >main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >_m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >15
#15 0x000000080377d1bc in Fork (closure=3D16_0000000807385b48)
= >   at ../src/thread/PTHREAD/ThreadPThread.m3:589
589 = >        WITH r =3D = >pthread_mutex_lock_active() DO <*ASSERT r=3D0*> END;
Current = >language:  auto; currently Modula-3
(m3gdb)

Not sure if = >this could be related to the crash in RTCollector.

= >    Mika

------- End of Forwarded = >Message

= > >--Apple-Mail-17--467794722-- From hosking at cs.purdue.edu Sat Oct 31 19:08:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:08:27 -0400 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: What changes did you make to RTCollector recently? Something changed somewhere *recently* to break GC. On 31 Oct 2009, at 09:40, Jay K wrote: > I'm not sure why/what-changed and maybe this is good, maybe this is > bad, but Juno is now crashing for me every time on Windows with > @paranoidgc. Tips to debug it? > > > Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 > Copyright (c) Microsoft Corporation. All rights reserved. > CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete > @M3paranoidgc > Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols > Executable search path is: > ModLoad: 00400000 004c7000 Juno.exe > ModLoad: 7c900000 7c9b2000 ntdll.dll > ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll > ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll > ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll > ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll > ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll > ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll > ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll > ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll > ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll > ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll > ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll > ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll > ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll > ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll > ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll > ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll > ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll > ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll > ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll > ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll > ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll > ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll > ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll > ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll > ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll > ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL > ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL > ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll > ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll > ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll > ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime > ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1729 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src > \runtime\common\R > TCollector.m3 > 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common > \RTCollector.m > 3 > 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep. > m3 > 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RT > Collector.m3 > 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > ......... ......... ... more frames ... > (d40.9d8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 > edi=005e5d8b > eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:000> .lines > Line number information will be loaded > 0:000> ~*k999 > . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012f4d4 005e5dd7 ntdll!DbgBreakPoint > 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess. > m3 @ 66] > 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m > 3 @ 118] > 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @ > 40] > 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTExcep > tion.m3 @ 79] > 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\commo > n\RTException.m3 @ 39] > 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\commo > n\RTException.m3 @ 47] > 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHook > s.m3 @ 110] > 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTColl > ector.m3 @ 393] > 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 > [..\src\runt > ime\common\RTCollector.m3 @ 1730] > 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap. > m3 @ 202] > 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeap > Map.m3 @ 62] > 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime > \common\RTHeap > Map.m3 @ 57] > 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapM > ap.m3 @ 47] > 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src > \runtime\common\R > TCollector.m3 @ 1658] > 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollec > tor.m3 @ 1630] > 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\ > RTHeapRep.m3 @ 59] > 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runti > me\common\RTCollector.m3 @ 983] > 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RT > Collector.m3 @ 724] > 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RT > Collector.m3 @ 654] > 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RT > Allocator.m3 @ 366] > 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src > \runtime\common\R > TAllocator.m3 @ 224] > 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src > \runtime\common\ > RTAllocator.m3 @ 120] > 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src > \JunoCompile. > m3 @ 254] > 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] > 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] > 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ > 174] > 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ > 263] > 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] > 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLi > nker.m3 @ 399] > 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker > .m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker. > m3 @ 122] > 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet > 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc > 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 > 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 > 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > 01b0fecc 7e4191be ntdll!KiFastSystemCallRet > 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc > 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src > \winvbt\WinTrestl > e.m3 @ 2448] > 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:000> > > > > Out of ignorance I might try to remove Trestle uses and see if it > still crashes. > But that might also be difficult. > (I did remove the filewatcher and metermaid threads.) > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:10:14 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:10:14 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180805.9B6091A209C@async.async.caltech.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: Yeah, and if that is not working properly then it might also explain your collector failures too. Have the RC archives not been updated for the changes to the RC branch? It looks like you are using an old ThreadPThread. On 31 Oct 2009, at 14:08, Mika Nystrom wrote: > Tony this is what I see: > > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; > > This is not from the head but from the RC archive from the M3 site: > > cm3-src-all-5.8.3-RC3.tgz > > Mika > > Tony Hosking writes: >> >> --Apple-Mail-17--467794722 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> This looks like a bogus line number for 1.123.2.4. Are you somehow >> using an older version of ThreadPThread.m3 (1.123.2.3)? >> >> On 31 Oct 2009, at 00:47, Mika Nystrom wrote: >> >>> >>> same comment as previous email >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >>> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: and another crash.... >>> Date: Thu, 29 Oct 2009 13:12:54 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >>> >>> >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >>> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >>> envp=0x7fffffffdf58) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) >>> >>> Not sure if this could be related to the crash in RTCollector. >>> >>> Mika >>> >>> ------- End of Forwarded Message >> >> >> --Apple-Mail-17--467794722 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">This = >> looks like a bogus line number for 1.123.2.4.  Are you somehow = >> using an older version of ThreadPThread.m3 = >> (1.123.2.3)?
> span" = >> color=3D"#0000FF" face=3D"'Gill Sans'">> span" = >> style=3D"font-size: = >> medium;">
> span>>>
On 31 Oct >>> 2009, = >> at 00:47, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">

same comment as previous >> email

------- = >> Forwarded Message

Return-Path: <> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
X-Original-To: mika
Delivered-To:
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Recei= >> ved: by async.async.caltech.edu (Postfix, from userid >> 1004)
> class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >> 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: >> from = >> async.async.caltech.edu (localhost [127.0.0.1])
> class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >> async.async.caltech.edu (Postfix) with ESMTP id >> 7129B1A2091;
> class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >> Oct 2009 13:12:54 -0700 (PDT)
To:
> href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com> a>
cc: = >>
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Subje= >> ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >> -0700
From: Mika Nystrom <
> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
Message-Id: <
> href=3D"mailto: >> 20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >> 9201254.780EB1A2094 at async.async.caltech.edu> a>>


WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> ABC:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >> thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in >> abort = >> () from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () >> at = >> ../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in >> Crash = >> (msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/runtime/common/RTProcess.m3:65
#4   >> 0x0000000803768ab2 in = >> EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) >> at = >> ../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa >> in = >> MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >> ../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 >> in = >> Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:79
#7   >> 0x0000000803768c3c = >> in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) = >> at ../src/runtime/common/RTException.m3:39
#8 = >>  0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type >> code = >> 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:25
#9   >> 0x0000000803778eab = >> in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee >> in = >> DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e >> in = >> InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab >> in = >> Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 >> in = >> ReportFault (module=3DInvalid C/C++ type code 35 in symbol >> table.
) = >> at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf >> in = >> _m3_fault (arg=3DInvalid C/C++ type code 39 in symbol >> table.
)
= >>   from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >> 0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >> symbol table.
) at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
#16 = >> 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in >> symbol = >> table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in >> Init = >> (t=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >> (mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >> ../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody >> (m=3DInvalid = >> C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >> AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >> AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:123
- ---Type <return> >> to = >> continue, or q <return> to quit---
#22 0x0000000000404194 >> in = >> main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >> _m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >> 15
#15 0x000000080377d1bc in Fork >> (closure=3D16_0000000807385b48)
= >>    at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
589 = >>         WITH r =3D = >> pthread_mutex_lock_active() DO <*ASSERT r=3D0*> >> END;
Current = >> language:  auto; currently Modula-3
(m3gdb)

Not >> sure if = >> this could be related to the crash in RTCollector.

= >>     Mika

------- End of Forwarded = >> Message

= >> >> --Apple-Mail-17--467794722-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:15:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:15:55 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Which pthread library are you linking to? On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:19:34 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:19:34 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <87AABBAB-B891-4DB8-9351-7096087BC889@cs.purdue.edu> This looks weird. How do you get from XWait to pthread_cond_signal? Unless perhaps that simply represents the fact that the signal has been fielded. In any case, I'd need to see backtraces from all the threads. This one looks to have successfully fielded a request to stop for GC. On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:20:32 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:20:32 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <8DFB7903-B5EB-4596-A259-2B4CCB87A6BE@cs.purdue.edu> For what it's worth, that call should never fail. It is unlocking a mutex that this thread should already hold. On 31 Oct 2009, at 12:11, Mika Nystrom wrote: > Hello m3devel, > > I'm running into problems with the current release candidate. > I'm attaching a backtrace from one crash, but I think I also am seeing > deadlocks in the threading system---my application goes catatonic. > Of course it *is* possible it's a bug in my application, but it works > on PM3 and on CM3 on PPC_DARWIN. > > Finally I'm still concerned about threading performance but in the > light > of the bugs it's hard to say much about it yet, I think... > > (The program in question is a highly multithreaded stock market > simulator.) > > Mika > > ============================================================ > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) show args > Argument list to give program being debugged when it is started is > "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - > symbology ric -symbology tws -replay mktisolator090910.ticks > 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp > 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 - > sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". > (m3gdb) where > #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 > #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/runtime/common/RTProcess.m3:65 > #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. > ) at ../src/runtime/common/RTError.m3:118 > #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in > symbol table. > ) at ../src/runtime/common/RTError.m3:40 > #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/common/RTException.m3:79 > #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:39 > #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:47 > #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type > code 35 in symbol table. > ) at ../src/runtime/common/RTHooks.m3:110 > #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 > in symbol table. > ) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 > #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 > #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:116 > #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktIsolator.m3:514 > #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in > symbol table. > ) at ../src/Main.m3:734 > #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/runtime/common/RTLinker.m3:400 > #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:114 > #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:123 > ---Type to continue, or q to quit--- > #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, > envp=0x7fffffffdf50) at _m3main.mc:4 > #23 0x00000000004040de in _start () > (m3gdb) up 15 > #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> > END; > Current language: auto; currently Modula-3 > (m3gdb) print r > $1 = 11 > (m3gdb) > > ============================================================ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:26:37 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:26:37 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Message-ID: <20091031182637.1D2DD1A209C@async.async.caltech.edu> Let's see here we go: libc.so.7 => /lib/libc.so.7 (0x804c4e000) -> linking mktisolator generate _m3main.new compare _m3main.new _m3main.mc rm _m3main.new gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\$ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread rm m3make.args cd . Tony Hosking writes: > >--Apple-Mail-21--467118296 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Which pthread library are you linking to? > >On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > >> >> More details about the "catatonic" case. It's pretty bad. Even >> ctrl-\ >> won't wake it up properly. Ctrl-\ is supposed to cause the program to >> abort and dump core. It does nothing to my program now! And I think >> I've "lost threads" before, too. >> >> Btw, >> >> (90)ginger:~/t>uname -a >> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ >> sys/GENERIC amd64 >> >> I'm happy to help debug if someone can give me some pointers... >> >> >> Mika >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) cont >> Continuing. >> >> >> *** >> *** runtime error: >> *** aborted >> >> >> >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >> 28 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >> #4 >> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 >> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:217 >> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:152 >> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/MktAsset.m3:117 >> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:469 >> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >> #16 0x0000000000000000 in ?? () >> (m3gdb) >> >> >> Mika Nystrom writes: >>> Hello m3devel, >>> >>> I'm running into problems with the current release candidate. >>> I'm attaching a backtrace from one crash, but I think I also am >>> seeing >>> deadlocks in the threading system---my application goes catatonic. >>> Of course it *is* possible it's a bug in my application, but it works >>> on PM3 and on CM3 on PPC_DARWIN. >>> >>> Finally I'm still concerned about threading performance but in the >>> light >>> of the bugs it's hard to say much about it yet, I think... >>> >>> (The program in question is a highly multithreaded stock market >>> simulator.) >>> >>> Mika >>> >>> ============================================================ >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) show args >>> Argument list to give program being debugged when it is started is >>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>> symbology ric -symbology tws >>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>> isolate90.src". >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>> 36 in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>> envp=0x7fffffffdf50) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) print r >>> $1 = 11 >>> (m3gdb) >>> >>> ============================================================ >>> >>> > > >--Apple-Mail-21--467118296 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Which pthread library are you = >linking to?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

More details about the "catatonic" case. = > It's pretty bad.  Even ctrl-\
won't wake it up properly. = > Ctrl-\ is supposed to cause the program to
abort and dump core. = > It does nothing to my program now!  And I think
I've "lost = >threads" before, too.

Btw,

(90)ginger:~/t>uname = >-a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 = >07:18:07 UTC 2009     
href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to help = >debug if someone can give me some pointers...


= >    Mika

^\
Program received signal = >SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >runtime error:
*** = >   aborted




^\
Program received = >signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
   at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = >28 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >handler called>
#5  0x0000000804b4829c in __error () from = >/lib/libthr.so.3
#6  0x0000000804b46365 in pthread_cond_signal = >() from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >(self=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:278
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = >symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked (t=3DInvalid = >C/C++ type code 26 in symbol table.
) at = >../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply (cl=3DInvalid= > C/C++ type code 26 in symbol table.
) at = >../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >(me=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
#14 0x000000080377ca6a in = >ThreadBase (param=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
#15 0x0000000804b3e4d1 in = >pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 in ?? = >()
(m3gdb)


Mika Nystrom writes:
type=3D"cite">Hello m3devel,
type=3D"cite">
I'm running = >into problems with the current release = >candidate.
I'm attaching a = >backtrace from one crash, but I think I also am = >seeing
deadlocks in the = >threading system---my application goes = >catatonic.
Of course it *is* = >possible it's a bug in my application, but it = >works
on PM3 and on CM3 on = >PPC_DARWIN.
type=3D"cite">
Finally I'm = >still concerned about threading performance but in the = >light
of the bugs it's hard to = >say much about it yet, I think...
type=3D"cite">
(The program in = >question is a highly multithreaded stock = >market
type=3D"cite">simulator.)
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">***
*** runtime = >error:
*** = >   <*ASSERT*> failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, Aborted.
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) show = >args
Argument list to give = >program being debugged when it is started is "@M3debugtrace=3Dmktsim.out = >-tz America/New_York -bugbehavior None -symbology ric -symbology = >tws
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 = >-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 = >-dp 0.30
7013 -sync 60 = >-unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >isolate90.src".
(m3gdb) = >where
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in symbol table.
) = >at ../src/runtime/common/RTProcess.m3:65
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code 36 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTError.m3:118
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in symbol table.
) = >at ../src/runtime/common/RTError.m3:40
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:79
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:39
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:47
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type code 35 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTHooks.m3:110
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 in symbol table.
type=3D"cite">)
 from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
ockquote type=3D"cite">#15 0x000000080377d1bc in Fork (closure=3DInvalid = >C/C++ type code 26 in symbol table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type = >code 26 in symbol table.
) at = >../src/MktPlace.m3:116
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at = >../src/MktIsolator.m3:514
#18 = >0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in symbol = >table.
) at = >../src/Main.m3:734
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 in = >symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
#22 0x0000000000404194 = >in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) at = >_m3main.mc:4
#23 = >0x00000000004040de in _start ()
type=3D"cite">(m3gdb) up 15
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >   at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">589         WITH r = >=3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >END;
Current language: = > auto; currently Modula-3
type=3D"cite">(m3gdb) print r
$1= > =3D 11
(m3gdb) = >

type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">
On 8 Oct >>> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= > >--Apple-Mail-21--467118296-- From mika at async.async.caltech.edu Sat Oct 31 19:54:01 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:54:01 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> Message-ID: <20091031185401.0E3761A209C@async.async.caltech.edu> Argh this is my first experience with FreeBSD 7. I thought this was all simple and clear by now. PTHREAD(3) FreeBSD Library Functions Manual PTHREAD(3) NAME pthread -- POSIX thread functions LIBRARY POSIX Threads Library (libpthread, -lpthread) SYNOPSIS #include DESCRIPTION POSIX threads are a set of functions that support applications with requirements for multiple flows of control, called threads, within a process. Multithreading is used to improve the performance of a program. The POSIX thread functions are summarized in this section in the follow- ing groups: o Thread Routines o Attribute Object Routines o Mutex Routines o Condition Variable Routines o Read/Write Lock Routines o Per-Thread Context Routines o Cleanup Routines Thread Routines int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) Creates a new thread of execution. int pthread_cancel(pthread_t thread) ... IMPLEMENTATION NOTES The current FreeBSD POSIX thread implementation is built in two libraries, 1:1 Threading Library (libthr, -lthr), and N:M Threading Library (libkse, -lkse). They contain both thread-safe versions of Standard C Library (libc, -lc) functions and the thread functions. Threaded applications are linked with one of these libraries. SEE ALSO pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_condattr_destroy(3), pthread_condattr_init(3), pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_timedwait(3), pthread_cond_wait(3), pthread_create(3), pthread_detach(3), pthread_equal(3), pthread_exit(3), pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), pthread_kill(3), pthread_mutexattr_destroy(3), pthread_mutexattr_getprioceiling(3), pthread_mutexattr_getprotocol(3), pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), pthread_mutexattr_setprioceiling(3), pthread_mutexattr_setprotocol(3), pthread_mutexattr_settype(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3), pthread_once(3), pthread_rwlockattr_destroy(3), pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), pthread_rwlock_init(3), pthread_rwlock_rdlock(3), pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), pthread_self(3), pthread_setcancelstate(3), pthread_setcanceltype(3), pthread_setspecific(3), pthread_testcancel(3) STANDARDS The functions with the pthread_ prefix and not _np suffix or pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX.1''). The functions with the pthread_ prefix and _np suffix are non-portable extensions to POSIX threads. The functions with the pthread_rwlock prefix are extensions created by The Open Group as part of the Version 2 of the Single UNIX Specification (``SUSv2''). FreeBSD 7.2 October 19, 2007 FreeBSD 7.2 > >Do you know which one -lpthread gives you on FreeBSD? > > >On 31 Oct 2009, at 14:26, Mika Nystrom wrote: > >> Let's see here we go: >> >> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >> >> -> linking mktisolator >> generate _m3main.new >> compare _m3main.new _m3main.mc >> rm _m3main.new >> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/ >> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/ >> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >> AMD64_FREEBSD -L/usr/local/c >> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/ >> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme- >> lib/AMD64_FREE >> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,- >> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/ >> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching - >> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >> rm m3make.args >> cd . >> >> >> Tony Hosking writes: >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Which pthread library are you linking to? >>> >>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>> >>>> >>>> More details about the "catatonic" case. It's pretty bad. Even >>>> ctrl-\ >>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>> program to >>>> abort and dump core. It does nothing to my program now! And I >>>> think >>>> I've "lost threads" before, too. >>>> >>>> Btw, >>>> >>>> (90)ginger:~/t>uname -a >>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>> src/ >>>> sys/GENERIC amd64 >>>> >>>> I'm happy to help debug if someone can give me some pointers... >>>> >>>> >>>> Mika >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) cont >>>> Continuing. >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** aborted >>>> >>>> >>>> >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) where >>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >>>> 28 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>> #4 >>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>> libthr.so.3 >>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:217 >>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:152 >>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>> in symbol table. >>>> ) at ../src/MktAsset.m3:117 >>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/MktPlace.m3:469 >>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>> in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >>>> 35 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>> #16 0x0000000000000000 in ?? () >>>> (m3gdb) >>>> >>>> >>>> Mika Nystrom writes: >>>>> Hello m3devel, >>>>> >>>>> I'm running into problems with the current release candidate. >>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>> seeing >>>>> deadlocks in the threading system---my application goes catatonic. >>>>> Of course it *is* possible it's a bug in my application, but it >>>>> works >>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>> >>>>> Finally I'm still concerned about threading performance but in the >>>>> light >>>>> of the bugs it's hard to say much about it yet, I think... >>>>> >>>>> (The program in question is a highly multithreaded stock market >>>>> simulator.) >>>>> >>>>> Mika >>>>> >>>>> ============================================================ >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) show args >>>>> Argument list to give program being debugged when it is started is >>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>>>> symbology ric -symbology tws >>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>> isolate90.src". >>>>> (m3gdb) where >>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>> RTOS.m3:20 >>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>> 36 in symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>> code 35 in symbol table. >>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>>>> in symbol table. >>>>> ) >>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:116 >>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktIsolator.m3:514 >>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>>>> symbol table. >>>>> ) at ../src/Main.m3:734 >>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>> ---Type to continue, or q to quit--- >>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>> #23 0x00000000004040de in _start () >>>>> (m3gdb) up 15 >>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>>>> END; >>>>> Current language: auto; currently Modula-3 >>>>> (m3gdb) print r >>>>> $1 = 11 >>>>> (m3gdb) >>>>> >>>>> ============================================================ >>>>> >>>>> >>> >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">Which pthread library are >>> you = >>> linking to?
>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 12:15, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">

More details about the "catatonic" case. = >>>  It's pretty bad.  Even ctrl-\
won't wake it up >>> properly. = >>>  Ctrl-\ is supposed to cause the program to
abort and dump >>> core. = >>>  It does nothing to my program now!  And I think
I've >>> "lost = >>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>  1 = >>> 07:18:07 UTC 2009     >> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>> = >>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>> help = >>> debug if someone can give me some pointers...


= >>>     Mika

^\
Program received signal = >>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >>> runtime error:
*** = >>>    aborted




^\
Program received = >>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>> in = >>> ThreadPThread__sigsuspend ()
   at = >>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>> code = >>> 28 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >>> handler called>
#5  0x0000000804b4829c in __error () >>> from = >>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>> pthread_cond_signal = >>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>> symbol table.
) at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:278
#9 = >>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>> in = >>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>> Wait = >>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>> (t=3DInvalid = >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>> (cl=3DInvalid= >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>> 0x000000080377ca6a in = >>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>> table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>> 0x0000000804b3e4d1 in = >>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>> in ?? = >>> ()
(m3gdb)


Mika Nystrom writes:
>> type=3D"cite">Hello m3devel,
>> type=3D"cite">
I'm >>> running = >>> into problems with the current release = >>> candidate.
I'm attaching >>> a = >>> backtrace from one crash, but I think I also am = >>> seeing
deadlocks in the = >>> threading system---my application goes = >>> catatonic.
Of course it >>> *is* = >>> possible it's a bug in my application, but it = >>> works
on PM3 and on CM3 >>> on = >>> PPC_DARWIN.
>> type=3D"cite">
Finally >>> I'm = >>> still concerned about threading performance but in the = >>> light
of the bugs it's >>> hard to = >>> say much about it yet, I think...
>> type=3D"cite">
(The >>> program in = >>> question is a highly multithreaded stock = >>> market
>> type=3D"cite">simulator.)
>> type=3D"cite">
= >>>    Mika
>> type=3D"cite">
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">***
*** >>> runtime = >>> error:
*** = >>>    <*ASSERT*> failed.
>> blockquote>
>> type=3D"cite">***    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
>> type=3D"cite">***
>> type=3D"cite">
>> type=3D"cite">
Program = >>> received signal SIGABRT, Aborted.
>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb) >>> show = >>> args
Argument list to >>> give = >>> program being debugged when it is started is >>> "@M3debugtrace=3Dmktsim.out = >>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>> tws
-replay = >>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>> 7001 = >>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>> 7011 = >>> -dp 0.30
7013 -sync 60 = >>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>> isolate90.src".
(m3gdb) = >>> where
#0 = >>>  0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
#1 = >>>  0x0000000804d2ef8b in abort () from = >>> /lib/libc.so.7
#2 = >>>  0x0000000803777bf7 in Crash () at = >>> ../src/runtime/POSIX/RTOS.m3:20
>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >>> C++ = >>> type code 26 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTProcess.m3:65
>> blockquote>
>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>> (crash=3DInvalid = >>> C/C++ type code 36 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTError.m3:118
>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >>> C++ = >>> type code 35 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTError.m3:40
>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >>> + = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTException.m3:79
>> blockquote>
>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:39
>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >>> C++ = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>> blockquote>
>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:47
>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>> type = >>> code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/ex_frame/RTExFrame.m3:29
>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>> (module=3DInvalid = >>> C/C++ type code 35 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTHooks.m3:110
>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >>> ++ = >>> type code 39 in symbol table.
>> type=3D"cite">)
>>>  from = >>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>> blockquote>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>> (closure=3DInvalid = >>> C/C++ type code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>> type = >>> code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/MktPlace.m3:116
>> type=3D"cite">#17 = >>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>> symbol = >>> table.
) at = >>> ../src/MktIsolator.m3:514
>> type=3D"cite">#18 = >>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>> symbol = >>> table.
) at = >>> ../src/Main.m3:734
#19 = >>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>> in = >>> symbol table.
) at = >>> ../src/runtime/common/RTLinker.m3:400
>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>> type = >>> code 29 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:114
>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>> type = >>> code 31 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:123
>> type=3D"cite">---Type <return> to continue, or q >>> <return> to = >>> quit---
#22 >>> 0x0000000000404194 = >>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>> at = >>> _m3main.mc:4
#23 = >>> 0x00000000004040de in _start ()
>> type=3D"cite">(m3gdb) up 15
>> type=3D"cite">#15 = >>> 0x000000080377d1bc in Fork = >>> (closure=3D16_00000008064c8930)
>> type=3D"cite">= >>>   at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">589 >>>         WITH r = >>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>> END;
Current language: = >>>  auto; currently Modula-3
>> type=3D"cite">(m3gdb) print r
>> type=3D"cite">$1= >>> =3D 11
(m3gdb) = >>>

>> blockquote>
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">

>> body>= >>> >>> --Apple-Mail-21--467118296-- > > >--Apple-Mail-24--465395183 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Do you know which one -lpthread = >gives you on FreeBSD?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>

On 31 Oct = >2009, at 14:26, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Let's = >see here we go:

= >       libc.so.7 =3D> = >/lib/libc.so.7 (0x804c4e000)

-> linking = >mktisolator
generate _m3main.new
compare _m3main.new = >_m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z origin = >-Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN = >-Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o MktIsolator.io = >MktIsolator.mo Main.mo = >-Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >-Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >-L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >-Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >-L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >-Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >-Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >-Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >-L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >-Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >-L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >-Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >m3/pkg/ui/AMD64_FREEBSD -lm3ui = >-Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >-Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >-L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >-Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >-Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >-Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >-Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >-Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >-L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >-Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >-L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >-Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >-L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >-Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >-L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >-Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >-L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >-Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >-L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >-Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >-L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >-Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >mika/t/cit_util/AMD64_FREEBSD -lcit_util = >-Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >-Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >-L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >-Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >-L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >-Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >-Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >-Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching = >-Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >-Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >-Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >-lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >m3make.args
cd .


Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Which pthread = >library are you linking to?
type=3D"cite">
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">
type=3D"cite">
More details about the = >"catatonic" case.  It's pretty bad.  Even = > 
type=3D"cite">ctrl-\
type=3D"cite">
won't wake it up properly. = > Ctrl-\ is supposed to cause the program = >to
type=3D"cite">abort and dump core.  It does nothing to my program = >now!  And I think
type=3D"cite">
I've "lost threads" before, = >too.
type=3D"cite">
type=3D"cite">
type=3D"cite">Btw,
type=3D"cite">
type=3D"cite">
type=3D"cite">
(90)ginger:~/t>uname = >-a
type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May = > 1  
type=3D"cite">
07:18:07 UTC 2009 = >    href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/
type=3D"cite">
sys/GENERIC = > amd64
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm happy to help debug if = >someone can give me some = >pointers...
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >cont
type=3D"cite">Continuing.
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">*** = >   aborted
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >where
type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
#1  0x0000000804b41d0a in = >sigsuspend () from = >/lib/libthr.so.3
type=3D"cite">
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
type=3D"cite">
  at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
lockquote type=3D"cite">
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = > 
type=3D"cite">28 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
<= >blockquote type=3D"cite">
#4  <signal = >handler called>
type=3D"cite">
#5  0x0000000804b4829c in = >__error () from = >/lib/libthr.so.3
type=3D"cite">
#6  0x0000000804b46365 in = >pthread_cond_signal () from = >/lib/libthr.so.3
type=3D"cite">
#7  0x000000080377a85d in = >XWait (self=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
lockquote type=3D"cite">
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:278
lockquote type=3D"cite">
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:217
type=3D"cite">
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:152
type=3D"cite">
#11 0x00000008011ae748 in = >WaitLocked (t=3DInvalid C/C++ type code 26 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/MktAsset.m3:117
type=3D"cite">
#12 0x00000008011b4950 in = >RecApply (cl=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/MktPlace.m3:469
type=3D"cite">
#13 0x000000080377cdf3 in = >RunThread (me=3DInvalid C/C++ type code 29 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
lockquote type=3D"cite">
#14 0x000000080377ca6a = >in ThreadBase (param=3DInvalid C/C++ type code = > 
type=3D"cite">35 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
lockquote type=3D"cite">
#15 0x0000000804b3e4d1 = >in pthread_getprio () from = >/lib/libthr.so.3
type=3D"cite">
#16 0x0000000000000000 in ?? = >()
type=3D"cite">(m3gdb)
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Mika Nystrom = >writes:
type=3D"cite">
Hello = >m3devel,
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm = >running into problems with the current release = >candidate.
type=3D"cite">
I'm = >attaching a backtrace from one crash, but I think I also am = > 
type=3D"cite">
type=3D"cite">seeing
type=3D"cite">
type=3D"cite">deadlocks in the threading system---my application goes = >catatonic.
type=3D"cite">
Of = >course it *is* possible it's a bug in my application, but it = >works
type=3D"cite">
on PM3 = >and on CM3 on = >PPC_DARWIN.
type=3D"cite">
type=3D"cite">
type=3D"cite">
Finally = >I'm still concerned about threading performance but in the = > 
type=3D"cite">
type=3D"cite">light
type=3D"cite">
of the = >bugs it's hard to say much about it yet, I = >think...
type=3D"cite">
type=3D"cite">
type=3D"cite">
(The = >program in question is a highly multithreaded stock = >market
type=3D"cite">
type=3D"cite">simulator.)
quote type=3D"cite">
type=3D"cite">
type=3D"cite">
= >  Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** = >runtime error:
type=3D"cite">
*** = >   <*ASSERT*> = >failed.
type=3D"cite">
*** = >   file "../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, = >Aborted.
type=3D"cite">
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >show args
type=3D"cite">
Argument= > list to give program being debugged when it is started is = > 
type=3D"cite">
type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >-bugbehavior None - = >
type=3D"cite">
type=3D"cite">symbology ric -symbology = >tws
type=3D"cite">
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to = > 
type=3D"cite">
type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 = >-dp 0.15  
type=3D"cite">
7007 = >-dp 0.20 7009 -dp 0.25 7011 -dp = >0.30
type=3D"cite">
7013 = >-sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = > 
type=3D"cite">
type=3D"cite">isolate90.src".
lockquote type=3D"cite">
type=3D"cite">(m3gdb) = >where
type=3D"cite">
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
type=3D"cite">
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
= >
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTProcess.m3:65
quote>
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code = > 
type=3D"cite">
36 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:118
uote>
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:40
ote>
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:79
ckquote>
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:39
ckquote>
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:47
ckquote>
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type  
type=3D"cite">
code = >35 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTHooks.m3:110
uote>
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
type=3D"cite">)
type=3D"cite">
from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
lockquote>
type=3D"cite">
#15 0x000000080377d1bc in Fork = >(closure=3DInvalid C/C++ type code 26 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktPlace.m3:116
te type=3D"cite">
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktIsolator.m3:514
quote type=3D"cite">
type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ type = >code 39 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/Main.m3:734
type=3D"cite">
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:400
quote>
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:114
quote>
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:123
quote>
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
type=3D"cite">
#22 = >0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = > 
type=3D"cite">
type=3D"cite">envp=3D0x7fffffffdf50) at = >_m3main.mc:4
type=3D"cite">
#23 = >0x00000000004040de in _start = >()
type=3D"cite">
(m3gdb) = >up 15
type=3D"cite">
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >
type=3D"cite">  at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">589         WITH = >r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = > 
type=3D"cite">
type=3D"cite">END;
type=3D"cite">
Current = >language:  auto; currently = >Modula-3
type=3D"cite">
(m3gdb) = >print r
type=3D"cite">
$1 =3D = >11
type=3D"cite">
type=3D"cite">(m3gdb)
e type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; ">Which pthread = >library are you =3D
linking = >to?<br><div apple-content-edited=3D3D"true"> <span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; color: = >=3D
rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: =3D
type=3D"cite">normal; font-variant: normal; font-weight: normal; = >letter-spacing: =3D
normal; = >line-height: normal; orphans: 2; text-align: auto; text-indent: = >=3D
0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: = >=3D
0px; = >-webkit-border-horizontal-spacing: 0px; =3D
type=3D"cite">-webkit-border-vertical-spacing: 0px; = >=3D
type=3D"cite">-webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 12:15, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><div><br>More details about = >the "catatonic" case. =3D
type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >ctrl-\<br>won't wake it up properly. =3D
type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >to<br>abort and dump core. =3D
type=3D"cite">&nbsp;It does nothing to my program now! &nbsp;And = >I think<br>I've "lost =3D
type=3D"cite">threads" before, = >too.<br><br>Btw,<br><br>(90)ginger:~/t&gt;unam= >e =3D
-a<br>FreeBSD = >ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >=3D
07:18:07 UTC 2009 = >&nbsp;&nbsp;&nbsp;&nbsp;<a = >=3D
href=3D3D"href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >falo.edu">href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed<= >/a>=3D
type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >&nbsp;amd64<br><br>I'm happy to help = >=3D
debug if someone can give = >me some pointers...<br><br><br> = >=3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >>^\<br>Program received signal =3D
type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in sigsuspend = >() from =3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >cont<br>Continuing.<br><br><br>***<br>*** = >=3D
runtime = >error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >;br><br><br>^\<br>Program received = >=3D
signal SIGQUIT, = >Quit.<br>0x0000000804ca037c in sigsuspend () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >&nbsp;0x0000000804ca037c in =3D
type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >&nbsp;0x0000000804b41d0a in =3D
type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >&nbsp;0x0000000803780da0 in =3D
type=3D"cite">ThreadPThread__sigsuspend ()<br> = >&nbsp;&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c:117<br>#3 = >=3D
&nbsp;0x000000080377ff6f= > in SignalHandler (sig=3D3DInvalid C/C++ type code = >=3D
28 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:1261<br>#4 = >&nbsp;&lt;signal =3D
type=3D"cite">handler called&gt;<br>#5 = >&nbsp;0x0000000804b4829c in __error () from = >=3D
/lib/libthr.so.3<br>#6= > &nbsp;0x0000000804b46365 in pthread_cond_signal = >=3D
() from = >/lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >=3D
(self=3D3DInvalid C/C++ = >type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:227<br>#8 = >=3D
&nbsp;0x000000080377b026= > in Wait (m=3D3DInvalid C/C++ type code 26 in = >=3D
symbol table.<br>) = >at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >=3D
&nbsp;0x000000080294a39c= > in WaitE (on=3D3DInvalid C/C++ type code 30 in = >=3D
symbol table.<br>) = >at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >=3D
(on=3D3DInvalid C/C++ type = >code 30 in symbol table.<br>) at =3D
type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >WaitLocked (t=3D3DInvalid =3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktAsset.m3:117<br>#12 0x00000008011b4950 in = >RecApply (cl=3D3DInvalid=3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktPlace.m3:469<br>#13 0x000000080377cdf3 in = >RunThread =3D
(me=3D3DInvalid = >C/C++ type code 29 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:547<br>#14 = >0x000000080377ca6a in =3D
type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:523<br>#15 = >0x0000000804b3e4d1 in =3D
type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >0x0000000000000000 in ?? =3D
type=3D"cite">()<br>(m3gdb) <br><br><br>Mika = >Nystrom writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite">Hello = >m3devel,<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">I'm running =3D
type=3D"cite">into problems with the current release = >=3D
type=3D"cite">candidate.<br></blockquote><blockquote = >type=3D3D"cite">I'm attaching a =3D
type=3D"cite">backtrace from one crash, but I think I also am = >=3D
type=3D"cite">seeing<br></blockquote><blockquote = >type=3D3D"cite">deadlocks in the =3D
type=3D"cite">threading system---my application goes = >=3D
type=3D"cite">catatonic.<br></blockquote><blockquote = >type=3D3D"cite">Of course it *is* =3D
type=3D"cite">possible it's a bug in my application, but it = >=3D
type=3D"cite">works<br></blockquote><blockquote = >type=3D3D"cite">on PM3 and on CM3 on =3D
type=3D"cite">PPC_DARWIN.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Finally I'm =3D
type=3D"cite">still concerned about threading performance but in the = >=3D
type=3D"cite">light<br></blockquote><blockquote = >type=3D3D"cite">of the bugs it's hard to = >=3D
say much about it yet, I = >think...<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">(The program in =3D
type=3D"cite">question is a highly multithreaded stock = >=3D
type=3D"cite">market<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">simulator.)<br></blockquote>&= >lt;blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite"> =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></blockquote&= >gt;<blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote type=3D3D"cite">*** runtime =3D
type=3D"cite">error:<br></blockquote><blockquote = >type=3D3D"cite">*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br></blockquote><blockquote = >=3D
type=3D3D"cite">*** = >&nbsp;&nbsp;&nbsp;file =3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Program =3D
type=3D"cite">received signal SIGABRT, = >Aborted.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) show =3D
type=3D"cite">args<br></blockquote><blockquote = >type=3D3D"cite">Argument list to give =3D
type=3D"cite">program being debugged when it is started is = >"@M3debugtrace=3D3Dmktsim.out =3D
type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >-symbology =3D
type=3D"cite">tws<br></blockquote><blockquote = >type=3D3D"cite">-replay =3D
type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >2009-09-10 at 15:59 -port 7001 =3D
type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 = >-dp 0.25 7011 =3D
-dp 0.30 = ><br></blockquote><blockquote type=3D3D"cite">7013 = >-sync 60 =3D
-unsolicitedfills = >0.5 -cp 0.5 -xtimeport 7200 =3D
type=3D"cite">isolate90.src".<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) =3D
type=3D"cite">where<br></blockquote><blockquote = >type=3D3D"cite">#0 =3D
type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#1 =3D
type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#2 =3D
type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >=3D
type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></blockquote>= ><blockquote =3D
type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >Crash (msg=3D3DInvalid C/C++ =3D
type=3D"cite">type code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTProcess.m3:65<br></blockquote><bloc= >kquote =3D
type=3D3D"cite">#4= > &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >=3D
C/C++ type code 36 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTError.m3:118<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in MsgS = >(file=3D3DInvalid C/C++ =3D
type= > code 35 in symbol table.<br></blockquote><blockquote = >type=3D3D"cite">) =3D
at = >../src/runtime/common/RTError.m3:40<br></blockquote><blockq= >uote =3D
type=3D3D"cite">#6 = >&nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >=3D
type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTException.m3:79<br></blockquote><bl= >ockquote =3D
type=3D3D"cite">= >#7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >=3D
C/C++ type code 30 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:39<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >Raise (act=3D3DInvalid C/C++ =3D
type=3D"cite">type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/ex_frame/RTExFrame.m3:29<br></blockquote><bl= >ockquote =3D
type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >DefaultBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:47<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >(act=3D3DInvalid C/C++ type =3D
type=3D"cite">code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in ReportFault = >(module=3D3DInvalid =3D
C/C++ = >type code 35 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in _m3_fault = >(arg=3D3DInvalid C/C++ =3D
type = >code 39 in symbol table.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">)<br></blockquote><blockqu= >ote type=3D3D"cite"> &nbsp;from =3D
type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5<br= >></blockquote><bl=3D
type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in Fork = >(closure=3D3DInvalid =3D
C/C++ = >type code 26 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >(t=3D3DInvalid C/C++ type =3D
type=3D"cite">code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/MktPlace.m3:116<br></blockquote><block= >quote type=3D3D"cite">#17 =3D
type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type code = >26 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/MktIsolator.m3:514<br></blockquote><bl= >ockquote type=3D3D"cite">#18 =3D
type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ type = >code 39 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/Main.m3:734<br></blockquote><blockquot= >e type=3D3D"cite">#19 =3D
type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C++ = >type code 29 in =3D
symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >(m=3D3DInvalid C/C++ type =3D
type=3D"cite">code 29 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >(b=3D3DInvalid C/C++ type =3D
type=3D"cite">code 31 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >continue, or q &lt;return&gt; to =3D
type=3D"cite">quit---<br></blockquote><blockquote = >type=3D3D"cite">#22 0x0000000000404194 =3D
type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >envp=3D3D0x7fffffffdf50) at =3D
type=3D"cite">_m3main.mc:4<br></blockquote><blockquote = >type=3D3D"cite">#23 =3D
type=3D"cite">0x00000000004040de in _start = >()<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >up 15<br></blockquote><blockquote type=3D3D"cite">#15 = >=3D
0x000000080377d1bc in Fork = >=3D
type=3D"cite">(closure=3D3D16_00000008064c8930)<br></blockquote&g= >t;<blockquote type=3D3D"cite">=3D
type=3D"cite">&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">589 = >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >;nbsp;WITH r =3D
=3D3D = >pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >=3D
type=3D"cite">END;<br></blockquote><blockquote = >type=3D3D"cite">Current language: =3D
type=3D"cite">&nbsp;auto; currently = >Modula-3<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >print r<br></blockquote><blockquote = >type=3D3D"cite">$1=3D
=3D3D = >11<br></blockquote><blockquote type=3D3D"cite">(m3gdb) = >=3D
type=3D"cite"><br></blockquote><blockquote = >type=3D3D"cite"><br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote></div>= ></blockquote></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-21--467118296--
ote>

= > >--Apple-Mail-24--465395183-- From hosking at cs.purdue.edu Sat Oct 31 19:59:19 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:59:19 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031185401.0E3761A209C@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: Can you try linking with -lthr? 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 31 Oct 2009, at 14:54, Mika Nystrom wrote: > Argh this is my first experience with FreeBSD 7. I thought this was > all simple and clear by now. > > PTHREAD(3) FreeBSD Library Functions Manual > PTHREAD(3) > > NAME > pthread -- POSIX thread functions > > LIBRARY > POSIX Threads Library (libpthread, -lpthread) > > SYNOPSIS > #include > > DESCRIPTION > POSIX threads are a set of functions that support applications > with > requirements for multiple flows of control, called threads, > within a > process. Multithreading is used to improve the performance of a > program. > > The POSIX thread functions are summarized in this section in the > follow- > ing groups: > > o Thread Routines > o Attribute Object Routines > o Mutex Routines > o Condition Variable Routines > o Read/Write Lock Routines > o Per-Thread Context Routines > o Cleanup Routines > > Thread Routines > int pthread_create(pthread_t *thread, const pthread_attr_t *attr, > void *(*start_routine)(void *), void *arg) > Creates a new thread of execution. > > int pthread_cancel(pthread_t thread) > ... > > IMPLEMENTATION NOTES > The current FreeBSD POSIX thread implementation is built in two > libraries, 1:1 Threading Library (libthr, -lthr), and N:M > Threading > Library (libkse, -lkse). They contain both thread-safe versions > of > Standard C Library (libc, -lc) functions and the thread functions. > Threaded applications are linked with one of these libraries. > > SEE ALSO > pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), > pthread_cleanup_push(3), pthread_condattr_destroy(3), > pthread_condattr_init(3), pthread_cond_broadcast(3), > pthread_cond_destroy(3), pthread_cond_init(3), > pthread_cond_signal(3), > pthread_cond_timedwait(3), pthread_cond_wait(3), > pthread_create(3), > pthread_detach(3), pthread_equal(3), pthread_exit(3), > pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), > pthread_kill(3), pthread_mutexattr_destroy(3), > pthread_mutexattr_getprioceiling(3), > pthread_mutexattr_getprotocol(3), > pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), > pthread_mutexattr_setprioceiling(3), > pthread_mutexattr_setprotocol(3), > pthread_mutexattr_settype(3), pthread_mutex_destroy(3), > pthread_mutex_init(3), pthread_mutex_lock(3), > pthread_mutex_trylock(3), > pthread_mutex_unlock(3), pthread_once(3), > pthread_rwlockattr_destroy(3), > pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), > pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), > pthread_rwlock_init(3), pthread_rwlock_rdlock(3), > pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), > pthread_self(3), > pthread_setcancelstate(3), pthread_setcanceltype(3), > pthread_setspecific(3), pthread_testcancel(3) > > STANDARDS > The functions with the pthread_ prefix and not _np suffix or > pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX. > 1''). > > The functions with the pthread_ prefix and _np suffix are non- > portable > extensions to POSIX threads. > > The functions with the pthread_rwlock prefix are extensions > created by > The Open Group as part of the Version 2 of the Single UNIX > Specification > (``SUSv2''). > > FreeBSD 7.2 October 19, 2007 > FreeBSD 7.2 > > >> >> Do you know which one -lpthread gives you on FreeBSD? >> >> >> On 31 Oct 2009, at 14:26, Mika Nystrom wrote: >> >>> Let's see here we go: >>> >>> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >>> >>> -> linking mktisolator >>> generate _m3main.new >>> compare _m3main.new _m3main.mc >>> rm _m3main.new >>> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >>> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >>> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >>> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/ >>> modula3scheme/ >>> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >>> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >>> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >>> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >>> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >>> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >>> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >>> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/ >>> mika/ >>> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >>> AMD64_FREEBSD -L/usr/local/c >>> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >>> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >>> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >>> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/ >>> mika/ >>> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >>> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >>> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >>> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >>> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >>> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >>> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/ >>> scheme- >>> lib/AMD64_FREE >>> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >>> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >>> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >>> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova - >>> Wl,- >>> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/ >>> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >>> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >>> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >>> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >>> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >>> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >>> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >>> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >>> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >>> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >>> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >>> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >>> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >>> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >>> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/ >>> AMD64_FREEBSD - >>> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >>> lpatternmatching - >>> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >>> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >>> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >>> rm m3make.args >>> cd . >>> >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Which pthread library are you linking to? >>>> >>>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>>> >>>>> >>>>> More details about the "catatonic" case. It's pretty bad. Even >>>>> ctrl-\ >>>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>>> program to >>>>> abort and dump core. It does nothing to my program now! And I >>>>> think >>>>> I've "lost threads" before, too. >>>>> >>>>> Btw, >>>>> >>>>> (90)ginger:~/t>uname -a >>>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>>> src/ >>>>> sys/GENERIC amd64 >>>>> >>>>> I'm happy to help debug if someone can give me some pointers... >>>>> >>>>> >>>>> Mika >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) cont >>>>> Continuing. >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** aborted >>>>> >>>>> >>>>> >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) where >>>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type >>>>> code >>>>> 28 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>>> #4 >>>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>>> libthr.so.3 >>>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 >>>>> in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:217 >>>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:152 >>>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/MktAsset.m3:117 >>>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code >>>>> 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:469 >>>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type >>>>> code >>>>> 35 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>>> #16 0x0000000000000000 in ?? () >>>>> (m3gdb) >>>>> >>>>> >>>>> Mika Nystrom writes: >>>>>> Hello m3devel, >>>>>> >>>>>> I'm running into problems with the current release candidate. >>>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>>> seeing >>>>>> deadlocks in the threading system---my application goes >>>>>> catatonic. >>>>>> Of course it *is* possible it's a bug in my application, but it >>>>>> works >>>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>>> >>>>>> Finally I'm still concerned about threading performance but in >>>>>> the >>>>>> light >>>>>> of the bugs it's hard to say much about it yet, I think... >>>>>> >>>>>> (The program in question is a highly multithreaded stock market >>>>>> simulator.) >>>>>> >>>>>> Mika >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> *** >>>>>> *** runtime error: >>>>>> *** <*ASSERT*> failed. >>>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>>> *** >>>>>> >>>>>> >>>>>> Program received signal SIGABRT, Aborted. >>>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> (m3gdb) show args >>>>>> Argument list to give program being debugged when it is started >>>>>> is >>>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior >>>>>> None - >>>>>> symbology ric -symbology tws >>>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>>> isolate90.src". >>>>>> (m3gdb) where >>>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>>> RTOS.m3:20 >>>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>>> 36 in symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>>> code 35 in symbol table. >>>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type >>>>>> code 39 >>>>>> in symbol table. >>>>>> ) >>>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code >>>>>> 26 >>>>>> in symbol table. >>>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code >>>>>> 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktPlace.m3:116 >>>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktIsolator.m3:514 >>>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/Main.m3:734 >>>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type >>>>>> code 29 >>>>>> in symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code >>>>>> 29 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>>> ---Type to continue, or q to quit--- >>>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>>> #23 0x00000000004040de in _start () >>>>>> (m3gdb) up 15 >>>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT >>>>>> r=0*> >>>>>> END; >>>>>> Current language: auto; currently Modula-3 >>>>>> (m3gdb) print r >>>>>> $1 = 11 >>>>>> (m3gdb) >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> >>>> >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">Which pthread library are >>>> you = >>>> linking to?
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 12:15, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">

More details about the "catatonic" case. = >>>>  It's pretty bad.  Even ctrl-\
won't wake it up >>>> properly. = >>>>  Ctrl-\ is supposed to cause the program to
abort and dump >>>> core. = >>>>  It does nothing to my program now!  And I think
I've >>>> "lost = >>>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>>  1 = >>>> 07:18:07 UTC 2009     
>>> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>>> = >>>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>>> help = >>>> debug if someone can give me some pointers...


= >>>>     Mika

^\
Program received signal = >>>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) >>>> cont
Continuing.


***
*** = >>>> runtime error:
*** = >>>>    aborted




^\
Program >>>> received = >>>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a >>>> in = >>>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>>> in = >>>> ThreadPThread__sigsuspend ()
   at = >>>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>>> code = >>>> 28 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4 >>>>  <signal = >>>> handler called>
#5  0x0000000804b4829c in __error () >>>> from = >>>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>>> pthread_cond_signal = >>>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 >>>> in = >>>> symbol table.
) at ../src/thread/PTHREAD/ >>>> ThreadPThread.m3:278
#9 = >>>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>>> in = >>>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>>> Wait = >>>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>>> (t=3DInvalid = >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>>> (cl=3DInvalid= >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>>> 0x000000080377ca6a in = >>>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>>> table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>>> 0x0000000804b3e4d1 in = >>>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>>> in ?? = >>>> ()
(m3gdb)


Mika Nystrom writes:
>>> type=3D"cite">Hello m3devel,
>>> type=3D"cite">
I'm >>>> running = >>>> into problems with the current release = >>>> candidate.
I'm attaching >>>> a = >>>> backtrace from one crash, but I think I also am = >>>> seeing
deadlocks in the = >>>> threading system---my application goes = >>>> catatonic.
Of course it >>>> *is* = >>>> possible it's a bug in my application, but it = >>>> works
on PM3 and on CM3 >>>> on = >>>> PPC_DARWIN.
>>> type=3D"cite">
Finally >>>> I'm = >>>> still concerned about threading performance but in the = >>>> light
of the bugs it's >>>> hard to = >>>> say much about it yet, I think...
>>> type=3D"cite">
(The >>>> program in = >>>> question is a highly multithreaded stock = >>>> market
>>> type=3D"cite">simulator.)
>>> type=3D"cite">
= >>>>    Mika
>>> type=3D"cite">
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">***
*** >>>> runtime = >>>> error:
*** = >>>>    <*ASSERT*> failed.
>>> blockquote>
>>> type=3D"cite">***    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
>>> type=3D"cite">***
>>> type=3D"cite">
>>> type=3D"cite">
Program = >>>> received signal SIGABRT, Aborted.
>>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb) >>>> show = >>>> args
Argument list to >>>> give = >>>> program being debugged when it is started is >>>> "@M3debugtrace=3Dmktsim.out = >>>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>>> tws
-replay = >>>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>>> 7001 = >>>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>>> 7011 = >>>> -dp 0.30
7013 -sync 60 = >>>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>>> isolate90.src".
(m3gdb) = >>>> where
#0 = >>>>  0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
#1 = >>>>  0x0000000804d2ef8b in abort () from = >>>> /lib/libc.so.7
#2 = >>>>  0x0000000803777bf7 in Crash () at = >>>> ../src/runtime/POSIX/RTOS.m3:20
>>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid >>>> C/ >>>> C++ = >>>> type code 26 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTProcess.m3:65
>>> blockquote>
>>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>>> (crash=3DInvalid = >>>> C/C++ type code 36 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTError.m3:118
>>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid >>>> C/ >>>> C++ = >>>> type code 35 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTError.m3:40
>>> blockquote>
>>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/ >>>> C+ >>>> + = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTException.m3:79
>>> blockquote>
>>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:39
>>> blockquote>
>>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid >>>> C/ >>>> C++ = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:47
>>> blockquote>
>>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>>> type = >>>> code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>>> (module=3DInvalid = >>>> C/C++ type code 35 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTHooks.m3:110
>>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid >>>> C/C >>>> ++ = >>>> type code 39 in symbol table.
>>> type=3D"cite">)
>>>>  from = >>>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>>> blockquote>>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>>> (closure=3DInvalid = >>>> C/C++ type code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>>> type = >>>> code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/MktPlace.m3:116
>>> type=3D"cite">#17 = >>>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>>> symbol = >>>> table.
) at = >>>> ../src/MktIsolator.m3:514
>>> type=3D"cite">#18 = >>>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>>> symbol = >>>> table.
) at = >>>> ../src/Main.m3:734
#19 = >>>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>>> in = >>>> symbol table.
) at = >>>> ../src/runtime/common/RTLinker.m3:400
>>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>>> type = >>>> code 29 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:114
>>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>>> type = >>>> code 31 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:123
>>> type=3D"cite">---Type <return> to continue, or q >>>> <return> to = >>>> quit---
#22 >>>> 0x0000000000404194 = >>>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>>> at = >>>> _m3main.mc:4
#23 = >>>> 0x00000000004040de in _start ()
>>> type=3D"cite">(m3gdb) up 15
>>> type=3D"cite">#15 = >>>> 0x000000080377d1bc in Fork = >>>> (closure=3D16_00000008064c8930)
>>> type=3D"cite">= >>>>   at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">589 >>>>         WITH r = >>>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>>> END;
Current language: = >>>>  auto; currently Modula-3
>>> type=3D"cite">(m3gdb) print r
>>> type=3D"cite">$1= >>>> =3D 11
(m3gdb) = >>>>

>>> blockquote>
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">

>>> body>= >>>> >>>> --Apple-Mail-21--467118296-- >> >> >> --Apple-Mail-24--465395183 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">Do you know which one - >> lpthread = >> gives you on FreeBSD?
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>

On 31 >> Oct = >> 2009, at 14:26, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Let's = >> see here we go:

= >>        libc.so.7 =3D> = >> /lib/libc.so.7 (0x804c4e000)

-> linking = >> mktisolator
generate _m3main.new
compare _m3main.new = >> _m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z >> origin = >> -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\ >> $ORIGIN = >> -Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o >> MktIsolator.io = >> MktIsolator.mo Main.mo = >> -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >> -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >> -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >> -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >> -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >> -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >> -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >> -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >> -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >> -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >> m3/pkg/ui/AMD64_FREEBSD -lm3ui = >> -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >> -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >> -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >> -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >> -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >> -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >> -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >> -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >> -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >> -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >> -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >> -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >> -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >> -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >> -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >> -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >> -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >> -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >> -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >> -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >> -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >> mika/t/cit_util/AMD64_FREEBSD -lcit_util = >> -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >> -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >> -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >> -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >> -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >> -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >> -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >> -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> lpatternmatching = >> -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >> -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >> -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >> -lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >> m3make.args
cd .


Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Which >> pthread = >> library are you linking to?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 12:15, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
More details about the = >> "catatonic" case.  It's pretty bad.  Even = >>  
> type=3D"cite">
> type=3D"cite">ctrl-\
> type=3D"cite">
won't wake it up properly. = >>  Ctrl-\ is supposed to cause the program = >> to
> type=3D"cite">
> type=3D"cite">abort and dump core.  It does nothing to my >> program = >> now!  And I think
> type=3D"cite">
I've "lost threads" before, = >> too.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Btw,
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
(90)ginger:~/t>uname = >> -a
> type=3D"cite">
> type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: >> Fri May = >>  1  
> type=3D"cite">
07:18:07 UTC 2009 = >>     > href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >> = >> u:/usr/obj/usr/src/
> type=3D"cite">
sys/GENERIC = >>  amd64
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
I'm happy to help debug if = >> someone can give me some = >> pointers...
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
= >>    Mika
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> cont
> type=3D"cite">
> type=3D"cite">Continuing.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">*** = >>    aborted
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
#1  0x0000000804b41d0a >> in = >> sigsuspend () from = >> /lib/libthr.so.3
> type=3D"cite">
#2  0x0000000803780da0 >> in = >> ThreadPThread__sigsuspend ()
> blockquote>
> type=3D"cite">
  at = >> ../src/thread/PTHREAD/ThreadPThreadC.c:117
> blockquote>> lockquote type=3D"cite">
#3 = >>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >> code = >>  
> type=3D"cite">
> type=3D"cite">28 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:1261
> blockquote><= >> blockquote type=3D"cite">
#4 >>  <signal = >> handler called>
> type=3D"cite">
#5  0x0000000804b4829c >> in = >> __error () from = >> /lib/libthr.so.3
> type=3D"cite">
#6  0x0000000804b46365 >> in = >> pthread_cond_signal () from = >> /lib/libthr.so.3
> type=3D"cite">
#7  0x000000080377a85d >> in = >> XWait (self=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:227
> blockquote>> lockquote type=3D"cite">
#8 = >>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:278
> blockquote>> lockquote type=3D"cite">
#9 = >>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >> in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:217
> type=3D"cite">
#10 0x000000080294999a in >> Wait = >> (on=3DInvalid C/C++ type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:152
> type=3D"cite">
#11 0x00000008011ae748 in = >> WaitLocked (t=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktAsset.m3:117
> type=3D"cite">
#12 0x00000008011b4950 in = >> RecApply (cl=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktPlace.m3:469
> type=3D"cite">
#13 0x000000080377cdf3 in = >> RunThread (me=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:547
> blockquote>> lockquote type=3D"cite">
#14 >> 0x000000080377ca6a = >> in ThreadBase (param=3DInvalid C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">35 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:523
> blockquote>> lockquote type=3D"cite">
#15 >> 0x0000000804b3e4d1 = >> in pthread_getprio () from = >> /lib/libthr.so.3
> type=3D"cite">
#16 0x0000000000000000 >> in ?? = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Mika Nystrom = >> writes:
> type=3D"cite">> type=3D"cite">
Hello = >> m3devel,
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">I'm = >> running into problems with the current release = >> candidate.
> type=3D"cite">
> type=3D"cite">I'm = >> attaching a backtrace from one crash, but I think I also am = >>  
> type=3D"cite">
> type=3D"cite">seeing
> blockquote>> type=3D"cite">
> type=3D"cite">deadlocks in the threading system---my application >> goes = >> catatonic.
> type=3D"cite">
> type=3D"cite">Of = >> course it *is* possible it's a bug in my application, but it = >> works
> type=3D"cite">
> type=3D"cite">on PM3 = >> and on CM3 on = >> PPC_DARWIN.
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Finally = >> I'm still concerned about threading performance but in the = >>  
> type=3D"cite">
> type=3D"cite">light
> blockquote>
> type=3D"cite">
> type=3D"cite">of the = >> bugs it's hard to say much about it yet, I = >> think...
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">(The = >> program in question is a highly multithreaded stock = >> market
> type=3D"cite">
> type=3D"cite">simulator.)
> blockquote>> quote type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
= >>   Mika
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >> runtime error:
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >>    <*ASSERT*> = >> failed.
> type=3D"cite">
> type=3D"cite">*** = >>    file "../src/thread/PTHREAD/ThreadPThread.m3", >> line = >> 589
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Program = >> received signal SIGABRT, = >> Aborted.
> type=3D"cite">
> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> show args
> type=3D"cite">
> type=3D"cite">Argument= >> list to give program being debugged when it is started is = >>  
> type=3D"cite">
> type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >> -bugbehavior None - = >>
> type=3D"cite">
> type=3D"cite">symbology ric -symbology = >> tws
> type=3D"cite">
- >> replay = >> mktisolator090910.ticks 2009-09-10 at 13:30 -to = >>  
> type=3D"cite">
> type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 >> 7005 = >> -dp 0.15  
> blockquote>
> type=3D"cite">
> type=3D"cite">7007 = >> -dp 0.20 7009 -dp 0.25 7011 -dp = >> 0.30
> type=3D"cite">
> type=3D"cite">7013 = >> -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>  
> type=3D"cite">
> type=3D"cite">isolate90.src".
> blockquote>> lockquote type=3D"cite">
> type=3D"cite">(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0 = >>  0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#1 = >>  0x0000000804d2ef8b in abort () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#2 = >>  0x0000000803777bf7 in Crash () at = >> ../src/runtime/POSIX/RTOS.m3:20
> blockquote>= >>
> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >> C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTProcess.m3:65
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#4  0x0000000803768ab2 in EndError >> (crash=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">36 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:118
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >> C++ = >> type code 35 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:40
> blockqu= >> ote>
> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >> + = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:79
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:39
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >> (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >> C++ = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:47
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >> type = >> code 30 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#13 0x0000000803750241 in ReportFault >> (module=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 35 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTHooks.m3:110
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >> ++ = >> type code 39 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
> type=3D"cite">)
> blockquote>
> type=3D"cite">
>> from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
> blockquote>> lockquote>
> type=3D"cite">
#15 0x000000080377d1bc in >> Fork = >> (closure=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktPlace.m3:116
> blockquote>> te type=3D"cite">
> type=3D"cite">#17 = >> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktIsolator.m3:514
> blockquote>> quote type=3D"cite">
> type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ >> type = >> code 39 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/Main.m3:734
> blockquote>
> type=3D"cite">
> type=3D"cite">#19 = >> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:400
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >> type = >> code 29 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:114
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >> type = >> code 31 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:123
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">---Type <return> to continue, or q >> <return> to = >> quit---
> type=3D"cite">
> type=3D"cite">#22 = >> 0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = >>  
> type=3D"cite">
> type=3D"cite">envp=3D0x7fffffffdf50) at = >> _m3main.mc:4
> type=3D"cite">
> type=3D"cite">#23 = >> 0x00000000004040de in _start = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> up 15
> type=3D"cite">
> type=3D"cite">#15 = >> 0x000000080377d1bc in Fork = >> (closure=3D16_00000008064c8930)
> blockquote>= >>
> type=3D"cite">  at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">589 >>         WITH = >> r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>  
> type=3D"cite">
> type=3D"cite">END;
> blockquote>
> type=3D"cite">
> type=3D"cite">Current = >> language:  auto; currently = >> Modula-3
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> print r
> type=3D"cite">
>> $1 =3D = >> 11
> type=3D"cite">
> type=3D"cite">(m3gdb)
> blockquote>> e type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; ">Which >> pthread = >> library are you =3D
> type=3D"cite">linking = >> to?<br><div apple-content-edited=3D3D"true"> <span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; color: = >> =3D
rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: =3D
> blockquote>
> type=3D"cite">normal; font-variant: normal; font-weight: normal; = >> letter-spacing: =3D
> type=3D"cite">normal; = >> line-height: normal; orphans: 2; text-align: auto; text-indent: = >> =3D
0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: = >> =3D
0px; = >> -webkit-border-horizontal-spacing: 0px; =3D
> blockquote>
> type=3D"cite">-webkit-border-vertical-spacing: 0px; = >> =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 12:15, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><div><br>More details >> about = >> the "catatonic" case. =3D
> type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >> ctrl-\<br>won't wake it up properly. =3D
> blockquote>> type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >> to<br>abort and dump core. =3D
> type=3D"cite">&nbsp;It does nothing to my program now! >> &nbsp;And = >> I think<br>I've "lost =3D
> type=3D"cite">threads" before, = >> too.<br><br>Btw,<br><br>(90)ginger:~/ >> t&gt;unam= >> e =3D
-a<br>FreeBSD = >> ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >> =3D
07:18:07 UTC 2009 = >> &nbsp;&nbsp;&nbsp;&nbsp;<a = >> =3D
href=3D3D"> href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >> falo.edu">> href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed >> <= >> /a>=3D
> type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >> &nbsp;amd64<br><br>I'm happy to help = >> =3D
debug if someone can >> give = >> me some pointers...<br><br><br> = >> =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >> >^\<br>Program received signal =3D
> blockquote>
> type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in >> sigsuspend = >> () from =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >> cont >> <br>Continuing.<br><br><br>***<br>*** = >> =3D
runtime = >> error:<br>*** =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >> ;br><br><br>^\<br>Program received = >> =3D
signal SIGQUIT, = >> Quit.<br>0x0000000804ca037c in sigsuspend () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >> &nbsp;0x0000000804ca037c in =3D
> type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >> &nbsp;0x0000000804b41d0a in =3D
> type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >> &nbsp;0x0000000803780da0 in =3D
> type=3D"cite">ThreadPThread__sigsuspend ()<br> = >> &nbsp;&nbsp;&nbsp;at =3D
> type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c: >> 117<br>#3 = >> =3D
&nbsp; >> 0x000000080377ff6f= >> in SignalHandler (sig=3D3DInvalid C/C++ type code = >> =3D
28 in symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:1261<br>#4 = >> &nbsp;&lt;signal =3D
> type=3D"cite">handler called&gt;<br>#5 = >> &nbsp;0x0000000804b4829c in __error () from = >> =3D
/lib/libthr.so. >> 3<br>#6= >> &nbsp;0x0000000804b46365 in pthread_cond_signal = >> =3D
() from = >> /lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >> =3D
(self=3D3DInvalid C/C+ >> + = >> type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:227<br>#8 = >> =3D
&nbsp; >> 0x000000080377b026= >> in Wait (m=3D3DInvalid C/C++ type code 26 in = >> =3D
symbol >> table.<br>) = >> at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >> =3D
&nbsp; >> 0x000000080294a39c= >> in WaitE (on=3D3DInvalid C/C++ type code 30 in = >> =3D
symbol >> table.<br>) = >> at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >> =3D
(on=3D3DInvalid C/C++ >> type = >> code 30 in symbol table.<br>) at =3D
> blockquote>
> type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >> WaitLocked (t=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktAsset.m3:117<br>#12 >> 0x00000008011b4950 in = >> RecApply (cl=3D3DInvalid=3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktPlace.m3:469<br>#13 >> 0x000000080377cdf3 in = >> RunThread =3D
> type=3D"cite">(me=3D3DInvalid = >> C/C++ type code 29 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:547<br>#14 = >> 0x000000080377ca6a in =3D
> type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in >> symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:523<br>#15 = >> 0x0000000804b3e4d1 in =3D
> type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >> 0x0000000000000000 in ?? =3D
> type=3D"cite">()<br>(m3gdb) >> <br><br><br>Mika = >> Nystrom writes:<br><blockquote =3D
> blockquote>
> type=3D"cite">type=3D3D"cite">Hello = >> m3devel,<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">I'm running =3D
> type=3D"cite">into problems with the current release = >> =3D
> type=3D"cite">candidate.<br></blockquote><blockquote = >> type=3D3D"cite">I'm attaching a =3D
> type=3D"cite">backtrace from one crash, but I think I also am = >> =3D
> type=3D"cite">seeing<br></blockquote><blockquote = >> type=3D3D"cite">deadlocks in the =3D
> type=3D"cite">threading system---my application goes = >> =3D
> type=3D"cite">catatonic.<br></blockquote><blockquote = >> type=3D3D"cite">Of course it *is* =3D
> blockquote>
> type=3D"cite">possible it's a bug in my application, but it = >> =3D
> type=3D"cite">works<br></blockquote><blockquote = >> type=3D3D"cite">on PM3 and on CM3 on =3D
> blockquote>
> type=3D"cite">PPC_DARWIN.<br></ >> blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Finally I'm =3D
> type=3D"cite">still concerned about threading performance but in >> the = >> =3D
> type=3D"cite">light<br></blockquote><blockquote = >> type=3D3D"cite">of the bugs it's hard to = >> =3D
say much about it >> yet, I = >> think...<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">(The program in =3D
> blockquote>
> type=3D"cite">question is a highly multithreaded stock = >> =3D
> type=3D"cite">market<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">simulator.)<br></ >> blockquote>&= >> lt;blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite"> =3D
> type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></ >> blockquote&= >> gt;<blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote type=3D3D"cite">*** runtime =3D
> blockquote>
> type=3D"cite">error:<br></blockquote><blockquote = >> type=3D3D"cite">*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">*** = >> &nbsp;&nbsp;&nbsp;file =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">589<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Program =3D
> type=3D"cite">received signal SIGABRT, = >> Aborted.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) show =3D
> type=3D"cite">args<br></blockquote><blockquote = >> type=3D3D"cite">Argument list to give =3D
> blockquote>
> type=3D"cite">program being debugged when it is started is = >> "@M3debugtrace=3D3Dmktsim.out =3D
> type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >> -symbology =3D
> type=3D"cite">tws<br></blockquote><blockquote = >> type=3D3D"cite">-replay =3D
> type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >> 2009-09-10 at 15:59 -port 7001 =3D
> type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 >> 7009 = >> -dp 0.25 7011 =3D
-dp >> 0.30 = >> <br></blockquote><blockquote type=3D3D"cite">7013 = >> -sync 60 =3D
- >> unsolicitedfills = >> 0.5 -cp 0.5 -xtimeport 7200 =3D
> type=3D"cite">isolate90.src".<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) =3D
> type=3D"cite">where<br></blockquote><blockquote = >> type=3D3D"cite">#0 =3D
> type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#1 =3D
> type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#2 =3D
> type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >> =3D
> type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></ >> blockquote>= >> <blockquote =3D
> type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >> Crash (msg=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTProcess.m3:65<br></ >> blockquote><bloc= >> kquote =3D
> type=3D"cite">type=3D3D"cite">#4= >> &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >> =3D
C/C++ type code 36 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTError.m3:118<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in >> MsgS = >> (file=3D3DInvalid C/C++ =3D
> type=3D"cite">type= >> code 35 in symbol table.<br></blockquote><blockquote = >> type=3D3D"cite">) =3D
> type=3D"cite">at = >> ../src/runtime/common/RTError.m3:40<br></ >> blockquote><blockq= >> uote =3D
> type=3D"cite">type=3D3D"cite">#6 = >> &nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >> =3D
type code 30 in >> symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTException.m3:79<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">= >> #7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >> =3D
C/C++ type code 30 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:39<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >> Raise (act=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >> DefaultBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:47<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >> (act=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in >> ReportFault = >> (module=3D3DInvalid =3D
C/ >> C++ = >> type code 35 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in >> _m3_fault = >> (arg=3D3DInvalid C/C++ =3D
> type=3D"cite">type = >> code 39 in symbol table.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">)<br></ >> blockquote><blockqu= >> ote type=3D3D"cite"> &nbsp;from =3D
> blockquote>
> type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so. >> 5<br= >> ></blockquote><bl=3D
> type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in >> Fork = >> (closure=3D3DInvalid =3D
> type=3D"cite">C/C++ = >> type code 26 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >> (t=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/MktPlace.m3:116<br></ >> blockquote><block= >> quote type=3D3D"cite">#17 =3D
> type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type >> code = >> 26 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/MktIsolator.m3:514<br></ >> blockquote><bl= >> ockquote type=3D3D"cite">#18 =3D
> type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ >> type = >> code 39 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/Main.m3:734<br></ >> blockquote><blockquot= >> e type=3D3D"cite">#19 =3D
> type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C+ >> + = >> type code 29 in =3D
> type=3D"cite">symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >> (m=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 29 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >> (b=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 31 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >> continue, or q &lt;return&gt; to =3D
> blockquote>
> type=3D"cite">quit---<br></blockquote><blockquote = >> type=3D3D"cite">#22 0x0000000000404194 =3D
> blockquote>
> type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >> envp=3D3D0x7fffffffdf50) at =3D
> type=3D"cite">_m3main.mc:4<br></ >> blockquote><blockquote = >> type=3D3D"cite">#23 =3D
> type=3D"cite">0x00000000004040de in _start = >> ()<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> up 15<br></blockquote><blockquote >> type=3D3D"cite">#15 = >> =3D
0x000000080377d1bc in >> Fork = >> =3D
> type=3D"cite">(closure=3D3D16_00000008064c8930)<br></ >> blockquote&g= >> t;<blockquote type=3D3D"cite">=3D
> type=3D"cite">&nbsp;&nbsp;at =3D
> blockquote>
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">589 = >> & >> ;nbsp >> ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >> ;nbsp;WITH r =3D
=3D3D = >> pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >> =3D
> type=3D"cite">END;<br></blockquote><blockquote = >> type=3D3D"cite">Current language: =3D
> blockquote>
> type=3D"cite">&nbsp;auto; currently = >> Modula-3<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> print r<br></blockquote><blockquote = >> type=3D3D"cite">$1=3D
> type=3D"cite">=3D3D = >> 11<br></blockquote><blockquote type=3D3D"cite"> >> (m3gdb) = >> =3D
> type=3D"cite"><br></blockquote><blockquote = >> type=3D3D"cite"><br></blockquote><blockquote = >> =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></blockquote></ >> div>= >> </blockquote></div><br></body></ >> html>=3D
= >>

> type=3D"cite">--Apple-Mail-21--467118296--
> blockqu= >> ote>

= >> >> --Apple-Mail-24--465395183-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:10:11 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:10:11 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: <20091031191011.63E701A2097@async.async.caltech.edu> Haha, this is cool! I've never seen a program fail TWO assertions! (-lthr) WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) initialized, will not attempt executions against it. WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) Tony Hosking writes: > >--Apple-Mail-27--464514552 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Can you try linking with -lthr? From hosking at cs.purdue.edu Sat Oct 31 20:15:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:15:20 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031191011.63E701A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> Message-ID: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Any idea what the return code is for line 589? On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > Haha, this is cool! I've never seen a program fail TWO assertions! > (-lthr) > > WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) > initialized, will not attempt executions against it. > WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) > Tony Hosking writes: >> >> --Apple-Mail-27--464514552 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Can you try linking with -lthr? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:23:34 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:23:34 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Message-ID: <20091031192335.050261A207D@async.async.caltech.edu> It's 11. How can I switch between threads in (m3)gdb? Tony Hosking writes: > >--Apple-Mail-30--463553748 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Any idea what the return code is for line 589? > >On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > >> Haha, this is cool! I've never seen a program fail TWO assertions! >> (-lthr) >> >> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >> initialized, will not attempt executions against it. >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) >> Tony Hosking writes: >>> >>> --Apple-Mail-27--464514552 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Can you try linking with -lthr? > > >--Apple-Mail-30--463553748 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">Any = >idea what the return code is for line 589?
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Haha, = >this is cool!  I've never seen a program fail TWO assertions! = >(-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >(fully) initialized, will not attempt executions against it.
WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***



***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb)
Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Can you try = >linking with = >-lthr?

= > >--Apple-Mail-30--463553748-- From hosking at cs.purdue.edu Sat Oct 31 20:45:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:45:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: threads all bt should give a backtrace of all threads. 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:09 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <0A73F2B1-8840-46C9-9F32-9503CE44AED8@cs.purdue.edu> Sorry: thread apply all bt 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:33 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:33 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> What does RC=11 correspond to in errno? 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:06:23 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:06:23 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <20091031200623.C0BC71A2097@async.async.caltech.edu> With the RC m3gdb it either segfaults gdb or: (m3gdb) threads Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all bt Can't find Modula-3 identifier: ThreadPosix (m3gdb) Tony Hosking writes: > >--Apple-Mail-33--461716527 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >threads all bt > >should give a backtrace of all threads. > From mika at async.async.caltech.edu Sat Oct 31 21:08:10 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:08:10 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> Message-ID: <20091031200810.AF0821A2097@async.async.caltech.edu> #define ECHILD 10 /* No child processes */ #define EDEADLK 11 /* Resource deadlock avoided */ /* 11 was EAGAIN */ #define ENOMEM 12 /* Cannot allocate memory */ Tony Hosking writes: > >--Apple-Mail-35--461680347 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >What does RC=11 correspond to in errno? > >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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > >> It's 11. How can I switch between threads in (m3)gdb? >> >> Tony Hosking writes: >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Any idea what the return code is for line 589? >>> >>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>> >>>> Haha, this is cool! I've never seen a program fail TWO assertions! >>>> (-lthr) >>>> >>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>> initialized, will not attempt executions against it. >>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>> *** >>>> >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>> *** >>>> >>>> >>>> Program received signal SIGABRT, Aborted. >>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>> (m3gdb) >>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-27--464514552 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> Can you try linking with -lthr? >>> >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">Any = >>> idea what the return code is for line 589?>> div>
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 15:10, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">
Haha, = >>> this is cool!  I've never seen a program fail TWO assertions! = >>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>> (fully) initialized, will not attempt executions against >>> it.
WARNING: = >>> TWSReplayer.ReqMktData: Couldnt find data for = >>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
***



***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 917
***


Program received signal SIGABRT, = >>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>> type=3D"cite">
>> type=3D"cite">--Apple-Mail-27--464514552
>> blockquote>
>> type=3D"cite">Content-Type: text/plain;
>> type=3D"cite">>> space:pre"> = >>> charset=3DUS-ASCII;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> format=3Dflowed;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> delsp=3Dyes
>> type=3D"cite">Content-Transfer-Encoding: = >>> 7bit
>> type=3D"cite">
Can you >>> try = >>> linking with = >>> -lthr?

= >>> >>> --Apple-Mail-30--463553748-- > > >--Apple-Mail-35--461680347 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">What does RC=3D11 correspond to = >in errno?

style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" color=3D"#0000FF">class=3D"Apple-style-span" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Antony = >Hoskingface=3D"Gill Sans">'Gill Sans'; ">'Gill Sans'; "> |class=3D"Apple-converted-space"> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; ">class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >">Associate Professorstyle=3D"font-family: 'Gill Sans'; ">style=3D"font-family: 'Gill Sans'; "> | Computer Science | Purdue = >University
face=3D"GillSans-Light">style=3D"font-family: GillSans-Light; ">305 N. University Street | West = >Lafayette | IN 47907 | USA
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Officeclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >"> +1 765 494 6001 |class=3D"Apple-converted-space"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Mobileclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-converted-space"> +1 765 427 = >5484
face=3D"GillSans-Light">
class=3D"khtml-block-placeholder">
>

class=3D"Apple-interchange-newline">

class=3D"Apple-interchange-newline">

On 31 Oct 2009, = >at 15:23, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
It's = >11.  How can I switch between threads in (m3)gdb?

Tony = >Hosking writes:

type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Any idea what = >the return code is for line 589?
type=3D"cite">
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">Haha, this is cool!  I've never seen a program fail = >TWO assertions!  
type=3D"cite">
type=3D"cite">(-lthr)
type=3D"cite">
type=3D"cite">
type=3D"cite">
WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet (fully) = > 
type=3D"cite">initialized, will not attempt executions against = >it.
type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program received signal SIGABRT, = >Aborted.
type=3D"cite">
0x0000000804c9fa9c in thr_kill = >() from /lib/libc.so.7
type=3D"cite">
type=3D"cite">(m3gdb)
type=3D"cite">
Tony Hosking = >writes:
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
ockquote>
type=3D"cite">Content-Type: = >text/plain;
type=3D"cite">
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >charset=3DUS-ASCII;
kquote type=3D"cite">
type=3D"cite"> = >format=3Dflowed;
ote type=3D"cite">
type=3D"cite"> = >delsp=3Dyes
type=3D"cite">
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
type=3D"cite">
type=3D"cite">
Can = >you try linking with = >-lthr?
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; "><div = >=3D
type=3D"cite">apple-content-edited=3D3D"true"><span = >class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, 0, 0); = >font-family: =3D
Helvetica; = >font-size: 12px; font-style: normal; font-variant: normal; = >=3D
font-weight: normal; = >letter-spacing: normal; line-height: normal; = >=3D
orphans: 2; text-align: = >auto; text-indent: 0px; text-transform: none; = >=3D
white-space: normal; = >widows: 2; word-spacing: 0px; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >=3D
idea what the return code = >is for line = >589?</font></span></div><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 15:10, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >type=3D3D"cite"><div>Haha, =3D
type=3D"cite">this is cool! &nbsp;I've never seen a program fail TWO = >assertions! =3D
type=3D"cite">(-lthr)<br><br>WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet =3D
type=3D"cite">(fully) initialized, will not attempt executions against = >it.<br>WARNING: =3D
type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >=3D
type=3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br>***<br><br><br><br>***&= >lt;br>*** runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">917<br>***<br><br><br>Program = >received signal SIGABRT, =3D
type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony Hosking = >writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">--Apple-Mail-27--464514552<br></= >blockquote><blockquote =3D
type=3D"cite">type=3D3D"cite">Content-Type: = >text/plain;<br></blockquote><blockquote = >=3D
type=3D3D"cite"><span = >class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">class=3D"Apple-tab-span" style=3D"white-space:pre"> = >=3D
type=3D"cite"></span>charset=3D3DUS-ASCII;<br></blockquote&= >gt;<blockquote type=3D3D"cite"><span=3D
te type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>format=3D3Dflowed;<br></blockquote>= ><blockquote type=3D3D"cite"><span =3D
type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>delsp=3D3Dyes<br></blockquote><b= >lockquote =3D
type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >=3D
type=3D"cite">7bit<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Can you try =3D
type=3D"cite">linking with =3D
type=3D"cite">-lthr?<br></blockquote></div></blockquo= >te></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-30--463553748--
ote>

= > >--Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:12 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200810.AF0821A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> Message-ID: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Deadlock is not possible in this instance. No other locks should be held. I notice that it used to be EAGAIN: does that imply we should be retrying the lock here? Did you confirm linking with -lthr? On 31 Oct 2009, at 16:08, Mika Nystrom wrote: > #define ECHILD 10 /* No child processes */ > #define EDEADLK 11 /* Resource deadlock avoided > */ > /* 11 was EAGAIN */ > #define ENOMEM 12 /* Cannot allocate memory */ > > Tony Hosking writes: >> >> --Apple-Mail-35--461680347 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> What does RC=11 correspond to in errno? >> >> 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: >> >>> It's 11. How can I switch between threads in (m3)gdb? >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Any idea what the return code is for line 589? >>>> >>>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>>> >>>>> Haha, this is cool! I've never seen a program fail TWO >>>>> assertions! >>>>> (-lthr) >>>>> >>>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>>> initialized, will not attempt executions against it. >>>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for >>>>> CEPH:TSE:CAD >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) >>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-27--464514552 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> Can you try linking with -lthr? >>>> >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">Any = >>>> idea what the return code is for line 589?>>> div>
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 15:10, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">
Haha, = >>>> this is cool!  I've never seen a program fail TWO >>>> assertions! = >>>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>>> (fully) initialized, will not attempt executions against >>>> it.
WARNING: = >>>> TWSReplayer.ReqMktData: Couldnt find data for = >>>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
***



***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 917
***


Program received signal SIGABRT, = >>>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>>> type=3D"cite">
>>> type=3D"cite">--Apple-Mail-27--464514552
>>> blockquote>
>>> type=3D"cite">Content-Type: text/plain;
>>> blockquote>
>>> type=3D"cite">>>> space:pre"> = >>>> charset=3DUS-ASCII;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> format=3Dflowed;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> delsp=3Dyes
>>> type=3D"cite">Content-Transfer-Encoding: = >>>> 7bit
>>> type=3D"cite">
Can you >>>> try = >>>> linking with = >>>> -lthr?

= >>>> >>>> --Apple-Mail-30--463553748-- >> >> >> --Apple-Mail-35--461680347 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">What does RC=3D11 >> correspond to = >> in errno?

> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" color=3D"#0000FF">> class=3D"Apple-style-span" face=3D"Gill Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Antony = >> Hosking> face=3D"Gill Sans">> family: = >> 'Gill Sans'; ">> family: = >> 'Gill Sans'; "> | >> > class=3D"Apple-converted-space"> > class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; >> ">> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >> ">Associate Professor> style=3D"font-family: 'Gill Sans'; ">> span" = >> style=3D"font-family: 'Gill Sans'; "> | Computer Science | >> Purdue = >> University
> style-span"= >> face=3D"GillSans-Light">> style=3D"font-family: GillSans-Light; ">305 N. University Street | >> West = >> Lafayette | IN 47907 | USA
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Office> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >> "> +1 765 494 6001 |> class=3D"Apple-converted-space"> > font>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Mobile> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-converted-space"> +1 765 427 = >> 5484
> span" = >> face=3D"GillSans-Light">
> class=3D"khtml-block-placeholder">
> span>>>

> class=3D"Apple-interchange-newline">
> span>
> class=3D"Apple-interchange-newline">

On 31 Oct >> 2009, = >> at 15:23, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
It's = >> 11.  How can I switch between threads in (m3)gdb?

Tony = >> Hosking writes:

> blockquote>
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Any idea >> what = >> the return code is for line 589?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Haha, this is cool!  I've never seen a program >> fail = >> TWO assertions!  
> type=3D"cite">
> type=3D"cite">(-lthr)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
WARNING: MktPlace.RecApply: = >> asset CEPH:CAD not yet (fully) = >>  
> type=3D"cite">
> type=3D"cite">initialized, will not attempt executions against = >> it.
> type=3D"cite">
> type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data >> for = >> CEPH:TSE:CAD
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Program received signal >> SIGABRT, = >> Aborted.
> type=3D"cite">
0x0000000804c9fa9c in >> thr_kill = >> () from /lib/libc.so.7
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
Tony Hosking = >> writes:
> type=3D"cite">> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>> ockquote>
> type=3D"cite">
> type=3D"cite">Content-Type: = >> text/plain;
> type=3D"cite">
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> charset=3DUS-ASCII;
> blockquote>> kquote type=3D"cite">
> type=3D"cite">> space:pre"> = >> format=3Dflowed;
> blockquote>> ote type=3D"cite">
> type=3D"cite">> space:pre"> = >> delsp=3Dyes
> blockquote>
> type=3D"cite">
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Can = >> you try linking with = >> -lthr?
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; "><div = >> =3D
> type=3D"cite">apple-content-edited=3D3D"true"><span = >> class=3D3D"Apple-style-span" =3D
> type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, >> 0, 0); = >> font-family: =3D
> type=3D"cite">Helvetica; = >> font-size: 12px; font-style: normal; font-variant: normal; = >> =3D
font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> =3D
orphans: 2; text- >> align: = >> auto; text-indent: 0px; text-transform: none; = >> =3D
white-space: normal; = >> widows: 2; word-spacing: 0px; =3D
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >> =3D
idea what the return >> code = >> is for line = >> 589?</font></span></div><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 15:10, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> type=3D3D"cite"><div>Haha, =3D
> type=3D"cite">this is cool! &nbsp;I've never seen a program >> fail TWO = >> assertions! =3D
> type=3D"cite">(-lthr)<br><br>WARNING: >> MktPlace.RecApply: = >> asset CEPH:CAD not yet =3D
> type=3D"cite">(fully) initialized, will not attempt executions >> against = >> it.<br>WARNING: =3D
> type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >> =3D
> type >> = >> 3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >> runtime error:<br>*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type >> = >> 3D >> "cite">589<br>***<br><br><br><br>***&= >> lt;br>*** runtime error:<br>*** =3D
> blockquote>
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">917<br>***<br><br><br>Program = >> received signal SIGABRT, =3D
> type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony >> Hosking = >> writes:<br><blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">--Apple- >> Mail-27--464514552<br></= >> blockquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Type: = >> text/plain;<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><span = >> class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> =3D
> type=3D"cite"></span>charset=3D3DUS-ASCII;<br></ >> blockquote&= >> gt;<blockquote type=3D3D"cite"><span=3D
> blockquote>> te type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>format=3D3Dflowed;<br></ >> blockquote>= >> <blockquote type=3D3D"cite"><span =3D
> blockquote>> type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>delsp=3D3Dyes<br></ >> blockquote><b= >> lockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >> =3D
> type=3D"cite">7bit<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Can you try =3D
> type=3D"cite">linking with =3D
> type=3D"cite">-lthr?<br></blockquote></div></ >> blockquo= >> te></div><br></body></html>=3D
> blockquote>= >>

> type=3D"cite">--Apple-Mail-30--463553748--
> blockqu= >> ote>

= >> >> --Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200623.C0BC71A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <20091031200623.C0BC71A2097@async.async.caltech.edu> Message-ID: <1210FEF9-5EAD-4313-A96A-2709711F4BDE@cs.purdue.edu> Try regular gdb. Set a breakpoint at RTHooks__ReportFault. Then thread apply all bt. 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 31 Oct 2009, at 16:06, Mika Nystrom wrote: > With the RC m3gdb it either segfaults gdb or: > > (m3gdb) threads > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all bt > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) > > Tony Hosking writes: >> >> --Apple-Mail-33--461716527 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> threads all bt >> >> should give a backtrace of all threads. >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:29:08 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:29:08 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Message-ID: <20091031202908.E26BA1A2097@async.async.caltech.edu> Tony Hosking writes: >Deadlock is not possible in this instance. No other locks should be >held. I notice that it used to be EAGAIN: does that imply we should >be retrying the lock here? > >Did you confirm linking with -lthr? Yeah, the first (single ASSERT failure) was -lpthread. The second (double ASSERT failure) was -lthr. Mika From hendrik at topoi.pooq.com Sat Oct 31 22:39:19 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sat, 31 Oct 2009 17:39:19 -0400 Subject: [M3devel] m3 RC In-Reply-To: References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: <20091031213919.GA10521@topoi.pooq.com> On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: > Yeah, and if that is not working properly then it might also explain > your collector failures too. > > Have the RC archives not been updated for the changes to the RC > branch? It looks like you are using an old ThreadPThread. Does this mean we wish we already had an RC4? -- hendrik From hosking at cs.purdue.edu Sat Oct 31 22:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 17:44:50 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031213919.GA10521@topoi.pooq.com> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> <20091031213919.GA10521@topoi.pooq.com> Message-ID: <1C5881C1-E011-4134-8FA7-4D7A9F2DCFD3@cs.purdue.edu> Not clear. It would be good to diagnose the error on FreeBSD 7 -lthr first. On 31 Oct 2009, at 17:39, hendrik at topoi.pooq.com wrote: > On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: >> Yeah, and if that is not working properly then it might also explain >> your collector failures too. >> >> Have the RC archives not been updated for the changes to the RC >> branch? It looks like you are using an old ThreadPThread. > > Does this mean we wish we already had an RC4? > > -- hendrik -------------- next part -------------- An HTML attachment was scrubbed... URL: From roland.illig at gmx.de Thu Oct 1 08:41:21 2009 From: roland.illig at gmx.de (Roland Illig) Date: Thu, 01 Oct 2009 08:41:21 +0200 Subject: [M3devel] Mailing list archive In-Reply-To: <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> References: <4AC24E30.5030304@gmx.de> <20090929232659.xvsqww0leccswck0@mail.elegosoft.com> Message-ID: <4AC44F11.5010506@gmx.de> Olaf Wagner schrieb: > Quoting Roland Illig : > >> Hi, >> >> I would like to fix a bug I found in 2005, but the bug's details are >> not in trac, but only in a mailing list archive, which isn't available >> anymore. >> >> https://projects.elego.de/cm3/ticket/640 >> >> Can anyone provide me with the details? > > Here is a copy of your old mail: Thank you. I cannot reproduce the bug anymore, so I think you can close the ticket. Roland From wagner at elegosoft.com Thu Oct 1 12:57:55 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 1 Oct 2009 12:57:55 +0200 (CEST) Subject: [M3devel] p007 still hangs on I386_OPENBSD Message-ID: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> It seems to me that the thread test p007 still hangs at least on I386_OPENBSD: http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console 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 Thu Oct 1 16:23:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 1 Oct 2009 10:23:36 -0400 Subject: [M3devel] p007 still hangs on I386_OPENBSD In-Reply-To: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> References: <17871.192.100.130.228.1254394675.squirrel@mail.elegosoft.com> Message-ID: <0E0CFE4A-267A-4719-B85E-6FDBDECBB4A0@cs.purdue.edu> Weird. I don't have that platform to test on. Can you attach to the process in gdb, and get a backtrace for all the threads? On 1 Oct 2009, at 06:57, Olaf Wagner wrote: > It seems to me that the thread test p007 still hangs at least on > I386_OPENBSD: > > http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/25/console > > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:27:14 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:27:14 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 5 16:33:05 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 5 Oct 2009 14:33:05 +0000 Subject: [M3devel] win32 threads/alert/race Message-ID: e.g. does this help: PROCEDURE Alert(t: T) = VAR prev, next: T; BEGIN IF t = NIL THEN Die(ThisLine(), "Alert called from non-Modula-3 thread") END; (* remove this *) EnterCriticalSection_giant(); (* make next two lines one interlocked *) t.alerted := TRUE; IF t.alertable THEN (* add this *) EnterCriticalSection_giant(); (* Dequeue from any CV and unblock from the semaphore *) IF t.waitingOn # NIL THEN next := t.waitingOn.waiters; prev := NIL; WHILE next # t DO <* ASSERT(next#NIL) *> prev := next; next := next.nextWaiter; END; IF prev = NIL THEN t.waitingOn.waiters := t.nextWaiter ELSE prev.nextWaiter := t.nextWaiter; END; t.nextWaiter := NIL; t.waitingOn := NIL; END; t.alertable := FALSE; IF ReleaseSemaphore(t.waitSema, 1, NIL) = 0 THEN Choke(ThisLine()); END; END; LeaveCriticalSection_giant(); (* this moves up obviously *) END Alert; From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Subject: win32 threads/alert/race Date: Mon, 5 Oct 2009 14:27:14 +0000 Tony can you clarify/confirm where you think the race is? Is it here: PROCEDURE InnerWait(m: Mutex; c: Condition; self: T) = (* LL = giant+m on entry; LL = m on exit *) BEGIN <* ASSERT( (self.waitingOn=NIL) AND (self.nextWaiter=NIL) ) *> self.waitingOn := c; self.nextWaiter := c.waiters; c.waiters := self; m.release(); LeaveCriticalSection_giant(); ** here ** ? IF perfOn THEN PerfChanged(State.waiting) END; IF WaitForSingleObject(self.waitSema, INFINITE) # 0 THEN Choke(ThisLine()); END; m.acquire(); END InnerWait; Btw..just in case.. alerted and alertable could be "interlocked", even share bits in the same long. If that helps. Another thing to consider is that Win32 reserves the lower two bits of handles for users. So you can imagine something even like where waitSema is in two places. One place where it isn't used, always there. Another place where if it is non-null it is going to be waited on. You could merge setting of that copy of waitSema with the two bits alerted and alertable. And set all three in one fell interlocked swoop. Does that help? I'm just mentioning random tricks, without understanding where the race is. I'm just hoping you don't need a lock free manipulation of the waiters list. That I have no good ideas on. There is the slist stuff but I'm not keen on it, and I don't think it buys anything. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Thu Oct 8 12:14:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 08 Oct 2009 12:14:39 +0200 Subject: [M3devel] Status of threads for RC4? Message-ID: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Activity has ceased on the list and the CM3 repository, but I'm not sure about the state of the thread system on Windows and POSIX (here at least on OpenBSD). Are further improvements to be expected? Do we know the reason for the non-termination of p007 on OpenBSD? A short update would be great. TIA, 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 Thu Oct 8 13:58:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 8 Oct 2009 04:58:37 -0700 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Posix was thought good; but openbsd not looked at, Win32 can hang. I'm still thinking. Current ideas: try plugging in boost's condition variables, try "what java does". Boost looks inefficient but I'm willing to take that at this point; java looks deceptively simple - I looking at the right code and it has enough features? Win32 may also have been this way "forever"? - Jay (phone) On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > Olaf > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > From jay.krell at cornell.edu Thu Oct 8 15:32:13 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 13:32:13 +0000 Subject: [M3devel] condition variables/win32 Message-ID: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:54:07 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:54:07 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> Message-ID: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach to the process using gdb and grab a stack dump). Are we seeing this on any other pthread target? On 8 Oct 2009, at 06:14, Olaf Wagner wrote: > Activity has ceased on the list and the CM3 repository, but I'm not > sure about the state of the thread system on Windows and POSIX > (here at least on OpenBSD). > > Are further improvements to be expected? > Do we know the reason for the non-termination of p007 on OpenBSD? > > A short update would be great. > > TIA, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 15:55:03 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 09:55:03 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <7B398533-AB35-406B-846A-24F205D31EED@hotmail.com> Message-ID: <99BC9CEE-2E27-4C70-AE1C-DC8D1C832049@cs.purdue.edu> On 8 Oct 2009, at 07:58, jay.krell at cornell.edu wrote: > Posix was thought good; but openbsd not looked at, > Win32 can hang. I'm still thinking. Current ideas: try plugging in > boost's condition variables, try "what java does". Boost looks > inefficient but I'm willing to take that at this point; java looks > deceptively simple - I looking at the right code and it has enough > features? > Win32 may also have been this way "forever"? Jay, I haven't had time to consider you most recent proposal... Probably not until next week. > > - Jay (phone) > > On Oct 8, 2009, at 3:14 AM, Olaf Wagner wrote: > >> Activity has ceased on the list and the CM3 repository, but I'm not >> sure about the state of the thread system on Windows and POSIX >> (here at least on OpenBSD). >> >> Are further improvements to be expected? >> Do we know the reason for the non-termination of p007 on OpenBSD? >> >> A short update would be great. >> >> TIA, >> >> 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 Thu Oct 8 16:09:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 10:09:31 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 16:22:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 14:22:51 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> References: Message-ID: But, is it common? Ok to make it contribute significantly to spurious wakeups? That is, I have this crazy theory...really need to come back to this fresh, try coding it, testing it..where you can implement a condition variable simply by waking everyone whenever a mutex is exited. I had this thought that what a condition variable represents is, instead of telling the kernel, here is one bit, an event, I am waiting for, instead you are telling it, hey, I have some custom code to evaluate, but it is false currently, and can only change when some exits such and such a lock, so just let me know when that lock is exited. The guy releasing the lock, or signal or broadcast..if he is signaling or broadcasting, he knows more specifically what he changed, not everything computable based on data protected by the lock, just something specific, but you can just wake everyone waiting on any of the conditions associated with the lock and it isn't maximally efficient but it should be correct. Basically, condition variable equals "wake me when someone changes some data and exits its lock". A better condition variable is that when there are multiple "conditions" in the data, the code making the change can target the wakeup better. But it isn't requires. And sometimes might not even matter much -- if in fact the ratio of locks to conditions is close to or equal to 1. - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] condition variables/win32 Date: Thu, 8 Oct 2009 10:09:31 -0400 In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 8 17:00:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 8 Oct 2009 11:00:36 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: <20091008143422.D91C01A207A@async.async.caltech.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <20091008143422.D91C01A207A@async.async.caltech.edu> Message-ID: Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>>

= >> >> --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Thu Oct 8 18:15:57 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 12:15:57 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: Message-ID: <4ACDD77A.1E75.00D7.1@scires.com> Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:13:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:13:03 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 8 21:16:58 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 8 Oct 2009 19:16:58 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACDD77A.1E75.00D7.1@scires.com> References: Message-ID: Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Fri Oct 9 00:47:03 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 08 Oct 2009 18:47:03 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <4ACDD77A.1E75.00D7.1@scires.com> Message-ID: <4ACE2482.1E75.00D7.1@scires.com> I do make use of the alert mechanism and condition variables in my code. My concern is that if Juno is the only place where we have observed a problem, maybe the problem is with the Juno code and not with the threads implementation. That is why I was wondering if we had a non-Juno example that exhibits a problem. Having more than one exemplar may also help track down the problem. The modules I referenced in my prior message create higher-level abstractions. They are implemented using the primitives available in the language proper, no UNSAFE stuff. Of course, any efficiency improvement in the lower levels would be a benefit, and yes it is probable that recoding my abstractions at a lower level or making them features at a lower level would be more efficient. Note that I'm not suggesting that any of these abstractions be made features of the language or pushed down to the lower levels. I was just pointing out that I've got a lot of stuff that uses threading on Windows and I haven't observed that the threading implementation is broken. Perhaps I am not exercising it the same way as Juno, or perhaps Juno is doing something wrong. Regards, Randy >>> Jay K 10/8/2009 3:16 PM >>> Randy, Juno hanging pretty consistently seems pretty concrete to me. Doesn't it? Granted it might be related to "alert" which maybe isn't an often used feature? Any testing/testcases you can contribute, please do. We should probably have more primitives instead of building on top of what we have, as the lower levels are already fairly inefficient and building on them is probably even more so. -Jay Date: Thu, 8 Oct 2009 12:15:57 -0400 From: rcoleburn at scires.com To: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Jay: I have written and extensively tested a number of modules using threading. For example, I have a nice multi-reader, single-writer lock implementation, a gatekeeper implementation, an object-database implementation, etc. All of these are built on top of the thread primitives in Modula-3. So there is no need to reinvent the wheel here. If you need to see some of the code for these, let me know. Perhaps I can contribute some of these to the community. At this point, do we have any concrete example of a failure in the Win32 threading implementation, other than something mysterious with Juno? Regards, Randy >>> Jay K 10/8/2009 9:32 AM >>> condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Fri Oct 9 13:59:31 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Fri, 09 Oct 2009 13:59:31 +0200 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ACE2482.1E75.00D7.1@scires.com> References: <4ACDD77A.1E75.00D7.1@scires.com> <4ACE2482.1E75.00D7.1@scires.com> Message-ID: <20091009135931.chei3435hcsgcwog@mail.elegosoft.com> Quoting Randy Coleburn : > I do make use of the alert mechanism and condition variables in my code. > > My concern is that if Juno is the only place where we have observed > a problem, maybe the problem is with the Juno code and not with the > threads implementation. That is why I was wondering if we had a > non-Juno example that exhibits a problem. Having more than one > exemplar may also help track down the problem. > > The modules I referenced in my prior message create higher-level > abstractions. They are implemented using the primitives available > in the language proper, no UNSAFE stuff. Of course, any efficiency > improvement in the lower levels would be a benefit, and yes it is > probable that recoding my abstractions at a lower level or making > them features at a lower level would be more efficient. > > Note that I'm not suggesting that any of these abstractions be made > features of the language or pushed down to the lower levels. I was > just pointing out that I've got a lot of stuff that uses threading > on Windows and I haven't observed that the threading implementation > is broken. Perhaps I am not exercising it the same way as Juno, or > perhaps Juno is doing something wrong. I would second Randy's concern insofar as we should be able to add a test that exhibits the failure and then test any new implementation against it. At least that would be the proper way to do it. If you have a theory what breaks or where a race may be hidden, it should be possible to write a simple test, or isn't it? This again is just me with my release engineer's hat on :-) Also, if you have any tests that can be added to m3tests, please do! 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 wagner at elegosoft.com Tue Oct 13 08:46:39 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 13 Oct 2009 08:46:39 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Quoting Tony Hosking : > I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > to the process using gdb and grab a stack dump). Are we seeing this > on any other pthread target? I just logged in quickly to Jay's OpenBSD system and started test 7. Output stops after line 8 and I had to hit Control-C. bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) set lang Modula-3 (m3gdb) bt #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0910ee53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0910f19f in _thread_kern_sched_state (state=688918728, fname=0x291010c8 "\000", lineno=688918728) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, time_remaining=0x8544ec70) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021041 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c007ccb in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c007c8a in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c00773d in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= RECORD inCritical = 0; pool = RECORD note = Allocated; pure = FALSE; page = NIL; next = NIL; limit = NIL; END; END) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004056 in GetTracedObj (def=16_3c001114) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 #16 0x1c01ed3e in RunThread (me=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01ea83 in ThreadBase (param=16_7faae480) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0910637f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () (m3gdb) Attaching to a running program doesn't yield anything useful: bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & [1] 26756 bash-3.2$ 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: bash-3.2$ ps PID TT STAT TIME COMMAND 22500 p0 Is 0:00.00 -ksh (ksh) 18592 p0 S 0:00.04 bash 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm 28998 p0 R+ 0:00.00 ps bash-3.2$ m3gdb GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd". (m3gdb) attach 26756 Attaching to process 26756 0x0d35f8f1 in ?? () (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm No symbol table is loaded. Use the "file" command. (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm Reading symbols from /home/hudson/workspace/cm3-test-m3tests-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. (m3gdb) bt #0 0x0d35f8f1 in ?? () #1 0x0a0c0314 in ?? () #2 0x84533000 in ?? () #3 0x00000001 in ?? () #4 0x00000001 in ?? () #5 0x00000001 in ?? () #6 0x00000000 in ?? () Does this help? Anything I should try this evening? 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 Tue Oct 13 15:16:08 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 13 Oct 2009 09:16:08 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> Message-ID: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> I need to see all the threads: thread apply all bt On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need a stack dump from the hung OpenBSD p007 run to diagnose >> (attach >> to the process using gdb and grab a stack dump). Are we seeing this >> on any other pthread target? > > I just logged in quickly to Jay's OpenBSD system and started test 7. > Output stops after line 8 and I had to hit Control-C. > > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) set lang Modula-3 > (m3gdb) bt > #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > fname=0x291010c8 "\000", lineno=688918728) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > time_remaining=0x8544ec70) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, > rem=0x8544ec70) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021041 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c007ccb in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > FALSE; page = NIL; next = NIL; limit = NIL; END; END) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004056 in GetTracedObj (def=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > #16 0x1c01ed3e in RunThread (me=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0910637f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > (m3gdb) > > Attaching to a running program doesn't yield anything useful: > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > [1] 26756 > bash-3.2$ > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: > bash-3.2$ ps > PID TT STAT TIME COMMAND > 22500 p0 Is 0:00.00 -ksh (ksh) > 18592 p0 S 0:00.04 bash > 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > 28998 p0 R+ 0:00.00 ps > bash-3.2$ m3gdb > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd". > (m3gdb) attach 26756 > Attaching to process 26756 > 0x0d35f8f1 in ?? () > (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > No symbol table is loaded. Use the "file" command. > (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > (m3gdb) bt > #0 0x0d35f8f1 in ?? () > #1 0x0a0c0314 in ?? () > #2 0x84533000 in ?? () > #3 0x00000001 in ?? () > #4 0x00000001 in ?? () > #5 0x00000001 in ?? () > #6 0x00000000 in ?? () > > Does this help? > Anything I should try this evening? > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 14 08:09:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 14 Oct 2009 08:09:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Well, of course you need all thread stacks to diagnose a deadlock, silly me. But I haven't been able to login again since then: Jay, is the OpenBSD server turned off? Could you either turn it on this evening CET or send Tony the needed traces? Thanks in advance, Olaf > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach >>> to the process using gdb and grab a stack dump). Are we seeing this >>> on any other pthread target? >> >> I just logged in quickly to Jay's OpenBSD system and started test 7. >> Output stops after line 8 and I had to hit Control-C. >> >> >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: ^C >> Program received signal SIGINT, Interrupt. >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. >> ) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) set lang Modula-3 >> (m3gdb) bt >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, >> fname=0x291010c8 "\000", lineno=688918728) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, >> time_remaining=0x8544ec70) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021041 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c007ccb in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 >> #16 0x1c01ed3e in RunThread (me=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0910637f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> (m3gdb) >> >> Attaching to a running program doesn't yield anything useful: >> >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & >> [1] 26756 >> bash-3.2$ >> 1: 1 >> 2: 1 2 >> 3: 1 2 3 >> 4: 1 2 3 4 >> 5: 1 2 3 4 5 >> 6: 1 2 3 4 5 6 >> 7: 1 2 3 4 5 6 7 >> 8: 1 2 3 4 5 6 7 8 >> 9: >> bash-3.2$ ps >> PID TT STAT TIME COMMAND >> 22500 p0 Is 0:00.00 -ksh (ksh) >> 18592 p0 S 0:00.04 bash >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm >> 28998 p0 R+ 0:00.00 ps >> bash-3.2$ m3gdb >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd". >> (m3gdb) attach 26756 >> Attaching to process 26756 >> 0x0d35f8f1 in ?? () >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm >> No symbol table is loaded. Use the "file" command. >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. >> (m3gdb) bt >> #0 0x0d35f8f1 in ?? () >> #1 0x0a0c0314 in ?? () >> #2 0x84533000 in ?? () >> #3 0x00000001 in ?? () >> #4 0x00000001 in ?? () >> #5 0x00000001 in ?? () >> #6 0x00000000 in ?? () >> >> Does this help? >> Anything I should try this evening? >> >> 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 jay.krell at cornell.edu Thu Oct 15 01:13:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 14 Oct 2009 23:13:57 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 dabenavidesd at yahoo.es Thu Oct 15 10:27:56 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 15 Oct 2009 08:27:56 +0000 (GMT) Subject: [M3devel] Status of threads for RC4? In-Reply-To: Message-ID: <260188.52953.qm@web23603.mail.ird.yahoo.com> Hi all: I was merely thinking how we could mitigate the issue in threading. We could argue the current thread implementation issues on NT are worrisome but, the system performance is more important and I guess a release is waiting? for all platforms stability. I think we could make a work around to put some tests on the GUI subsystem on the test suite, using the sort of capability that Zeus Mentor Snapshot has to capture the screen shot and compare with others results with test already on: m3-ui/ui-tests m3-ui/ui/test Just getting some sort of difference between NT GUI subsystem and X implementation would allows to see where we can be missing something. Also integration on X implementation of Critical mass GUI upgrade would be highly appreciated: cm3-cvs/m3-ui/cmvbt Also I remember I saw the pm3 NT386GNU target implementation doing basic stuff with DEC SRC NT GUI, but? another doing advanced stuff with Mentor and others I think? the code you can get it by the package/src/ directories (http://www.1o0.de/wi-links/modula3/), but I?m not aware if it used the x/cygwin, I don?t think so, but even if so, would be an advance to have mentor running animation stuff until some point we could get better performance in the current NT GUI implementation (could be something in the garbage collection, Tony, as NT has its own garbage collector, has it been maintained after CM3 developed the new collector?) Another shot maybe for next release (7.0) is trying to develop tests on obliq framework and integration with pm3 documentation system, which seemed to be good. About Unix interfaces, Im thinking how to reuse the SPIN digital Unix interface so we can have a sort of a virtualization tool integrated in CM3 as a tool for deploying Unix apps on NT and getting some layers of Modula-3 runtime code based on a standarized Unix interface Sphinx.i3 (path in spin sources tree user/sphinx/src/IX86_SPIN/) something we could call "DECUnix.i3", we could also get some parts of the system running directly over Modula-3 runtime code rather than on bare Unix interfaces getting a more standarized behaviuor and maybe we could gain some knowledge to do experiments for system developers and users Thanks in advance --- El mi?, 14/10/09, Jay K escribi?: De: Jay K Asunto: Re: [M3devel] Status of threads for RC4? Para: "Olaf" , "Tony" CC: "m3devel" Fecha: mi?rcoles, 14 octubre, 2009 6:13 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. ? ?- Jay ? > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:30:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:30:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091014080956.nyzvwlbn4ow4k880@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 Oct 15 16:49:51 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 15 Oct 2009 14:49:51 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: In head, wierd. in gdb: 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 7 30 731: [1] + Stopped (tty output) gdb ./I386_OPENBSD/pgm $ attach shows no stack. Maybe more later? -Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu Date: Thu, 15 Oct 2009 14:30:22 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Status of threads for RC4? Linux/x86 and OpenBSD/x86 are back on. I'll spend a few minutes see if I can get the stacks. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com; hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Status of threads for RC4? Date: Wed, 14 Oct 2009 23:13:57 +0000 I didn't deliberately turn anything off but indeed I can see that some machines are not accessible and some are. I'll look at them later. - Jay > Date: Wed, 14 Oct 2009 08:09:56 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Tony Hosking : > > > I need to see all the threads: > > > > thread apply all bt > > Well, of course you need all thread stacks to diagnose a deadlock, > silly me. But I haven't been able to login again since then: > Jay, is the OpenBSD server turned off? Could you either turn it on > this evening CET or send Tony the needed traces? > > Thanks in advance, > > Olaf > > > On 13 Oct 2009, at 02:46, Olaf Wagner wrote: > > > >> Quoting Tony Hosking : > >> > >>> I need a stack dump from the hung OpenBSD p007 run to diagnose (attach > >>> to the process using gdb and grab a stack dump). Are we seeing this > >>> on any other pthread target? > >> > >> I just logged in quickly to Jay's OpenBSD system and started test 7. > >> Output stops after line 8 and I had to hit Control-C. > >> > >> > >> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd"... > >> (m3gdb) r > >> Starting program: /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > >> > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: ^C > >> Program received signal SIGINT, Interrupt. > >> 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=Invalid C/C++ type code 40 > >> in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=Invalid C/C++ type code 29 in > >> symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=Invalid C/C++ type code > >> 35 in symbol table. > >> ) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=Invalid C/C++ type code 26 in symbol table. > >> ) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=Invalid C/C++ type code 29 in symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=Invalid C/C++ type code 35 in > >> symbol table. > >> ) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) set lang Modula-3 > >> (m3gdb) bt > >> #0 0x0e3f18f1 in poll () from /usr/lib/libc.so.50.1 > >> #1 0x0910f314 in _thread_kern_poll (wait_reqd=1) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > >> #2 0x0910ee53 in _thread_kern_sched (scp=0x0) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > >> #3 0x0910f19f in _thread_kern_sched_state (state=688918728, > >> fname=0x291010c8 "\000", lineno=688918728) > >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > >> #4 0x09109085 in nanosleep (time_to_sleep=0x8544ec68, > >> time_remaining=0x8544ec70) > >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > >> #5 0x1c023181 in ThreadPThread__Nanosleep (req=0x8544ec68, rem=0x8544ec70) > >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > >> #6 0x1c01fb54 in CommonSleep () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:740 > >> #7 0x1c0219d3 in StopWorld () at ../src/thread/PTHREAD/ > >> ThreadPThread.m3:1253 > >> #8 0x1c021041 in SuspendOthers () > >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > >> #9 0x1c007ccb in CollectSomeInStateZero () > >> at ../src/runtime/common/RTCollector.m3:735 > >> #10 0x1c007c8a in CollectSome () at ../src/runtime/common/ > >> RTCollector.m3:709 > >> #11 0x1c00773d in CollectEnough () at ../src/runtime/common/ > >> RTCollector.m3:643 > >> #12 0x1c004de1 in AllocTraced (dataSize=12, dataAlignment=4, thread= > >> RECORD inCritical = 0; pool = RECORD note = Allocated; pure = > >> FALSE; page = NIL; next = NIL; limit = NIL; END; END) > >> at ../src/runtime/common/RTAllocator.m3:363 > >> #13 0x1c004056 in GetTracedObj (def=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:222 > >> #14 0x1c0039ec in AllocateTracedObj (defn=16_3c001114) > >> at ../src/runtime/common/RTAllocator.m3:120 > >> #15 0x1c002b82 in Task (self=16_8bc4a00c) at ../Main.m3:58 > >> #16 0x1c01ed3e in RunThread (me=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 > >> #17 0x1c01ea83 in ThreadBase (param=16_7faae480) > >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 > >> #18 0x0910637f in _thread_start () > >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > >> #19 0x0000002b in ?? () > >> #20 0x00000000 in ?? () > >> (m3gdb) > >> > >> Attaching to a running program doesn't yield anything useful: > >> > >> bash-3.2$ src/p0/p007/I386_OPENBSD/pgm & > >> [1] 26756 > >> bash-3.2$ > >> 1: 1 > >> 2: 1 2 > >> 3: 1 2 3 > >> 4: 1 2 3 4 > >> 5: 1 2 3 4 5 > >> 6: 1 2 3 4 5 6 > >> 7: 1 2 3 4 5 6 7 > >> 8: 1 2 3 4 5 6 7 8 > >> 9: > >> bash-3.2$ ps > >> PID TT STAT TIME COMMAND > >> 22500 p0 Is 0:00.00 -ksh (ksh) > >> 18592 p0 S 0:00.04 bash > >> 26756 p0 S 0:00.02 src/p0/p007/I386_OPENBSD/pgm > >> 28998 p0 R+ 0:00.00 ps > >> bash-3.2$ m3gdb > >> GNU gdb plus Modula-3 6.4 > >> Copyright 2005 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 "i686-openbsd". > >> (m3gdb) attach 26756 > >> Attaching to process 26756 > >> 0x0d35f8f1 in ?? () > >> (m3gdb) set symbol-file src/p0/p007/I386_OPENBSD/pgm > >> No symbol table is loaded. Use the "file" command. > >> (m3gdb) symbol-file src/p0/p007/I386_OPENBSD/pgm > >> Reading symbols from /home/hudson/workspace/cm3-test-m3tests- > >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm...done. > >> (m3gdb) bt > >> #0 0x0d35f8f1 in ?? () > >> #1 0x0a0c0314 in ?? () > >> #2 0x84533000 in ?? () > >> #3 0x00000001 in ?? () > >> #4 0x00000001 in ?? () > >> #5 0x00000001 in ?? () > >> #6 0x00000000 in ?? () > >> > >> Does this help? > >> Anything I should try this evening? > >> > >> 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 wagner at elegosoft.com Thu Oct 15 23:45:04 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 15 Oct 2009 23:45:04 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> Message-ID: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Quoting Tony Hosking : > I need to see all the threads: > > thread apply all bt Here you are: bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) r Starting program: /home/hudson/workspace/cm3-test-all-pkgs-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: ^C Program received signal SIGINT, Interrupt. 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) set lang Modula-3 (m3gdb) thread apply all bt Thread 10 (process 23708, thread 0x821ff000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c01105a in AddUnitI (m=16_3c0010e0) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) at _m3main.mc:4 #11 0x1c00266c in ___start () #12 0x1c0025bf in _start () Warning: the current language does not match this frame. Thread 9 (process 23708, thread 0x821ff400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x821ff4b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 23708, thread 0x87b14c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b14cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, mutex=0x231ca0dc, abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x031cf5a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 7 (process 23708, thread 0x87b14800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b148b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, c=16_83e7a0a4, alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 #7 0x1c01ed3e in RunThread (me=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 6 (process 23708, thread 0x87b14000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x87b140b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 23708, thread 0x8b659800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6598b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 23708, thread 0x8b659000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8b6590b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 23708, thread 0x868d6400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d64b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 2 (process 23708, thread 0x868d6c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x868d6cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 #6 0x1c01ed3e in RunThread (me=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x031cf37f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 1 (process 23708, thread 0x862c9400): #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0xbb315 #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I hope this helps, 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 Fri Oct 16 00:23:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 18:23:20 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: Hmm. This is very weird. All the threads are trying to acquire the same mutex (the global mutex in p007/src/Main.m3), but none of them is actually holding it. So, why can't one of them get it? Anyone else have any idea what's going on here? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 16 01:34:04 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 15 Oct 2009 19:34:04 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) So what is thread 1 up to? On 15 Oct 2009, at 17:45, Olaf Wagner wrote: > Quoting Tony Hosking : > >> I need to see all the threads: >> >> thread apply all bt > > Here you are: > > bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-test-all-pkgs- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: ^C > Program received signal SIGINT, Interrupt. > 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) set lang Modula-3 > (m3gdb) thread apply all bt > > Thread 10 (process 23708, thread 0x821ff000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002efc in Main (mode=1) at ../Main.m3:75 > #7 0x1c011ca0 in RunMainBody (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c01105a in AddUnitI (m=16_3c0010e0) > at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70}) > at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc) > at _m3main.mc:4 > #11 0x1c00266c in ___start () > #12 0x1c0025bf in _start () > Warning: the current language does not match this frame. > > Thread 9 (process 23708, thread 0x821ff400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x821ff4b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbb880) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 23708, thread 0x87b14c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b14cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0, > mutex=0x231ca0dc, > abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x031cf5a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 7 (process 23708, thread 0x87b14800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b148b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4, > c=16_83e7a0a4, > alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4) > at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42 > #7 0x1c01ed3e in RunThread (me=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01ea83 in ThreadBase (param=16_7dbbba80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 6 (process 23708, thread 0x87b14000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x87b140b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbbb80) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 23708, thread 0x8b659800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6598b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb680) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 23708, thread 0x8b659000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8b6590b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb400) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 23708, thread 0x868d6400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d64b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbb180) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 2 (process 23708, thread 0x868d6c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x868d6cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01c378 in LockMutex (m=16_83e7a0b4) > at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41 > #6 0x1c01ed3e in RunThread (me=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01ea83 in ThreadBase (param=16_7dbbba00) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x031cf37f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 1 (process 23708, thread 0x862c9400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0xbb315 > #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 18 10:16:11 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 18 Oct 2009 08:16:11 +0000 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Sun Oct 18 12:30:28 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Sun, 18 Oct 2009 12:30:28 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> Message-ID: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Quoting Tony Hosking : >> Thread 1 (process 23708, thread 0x862c9400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0xbb315 >> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) > > So what is thread 1 up to? I don't really understand what's going on there. But I made another test which might or might not be helpful. I single-stepped in thread 1 until it blocks. We get actually no output from other threads then (though several have been started, but then thread 3 seems to be corrupt. Here is the debugger session: -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm GNU gdb plus Modula-3 6.4 Copyright 2005 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 "i686-openbsd"... (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Main Main.m3 Main_M3_tcb594446_LINK Main.i3 Main.mc Main.ic Main_M3_t9b50f823_INIT (m3gdb) b Main Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. (m3gdb) r Starting program: /home/hudson/workspace/cm3-lastok-build-I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. [Switching to process 15851, thread 0x85cc4800] Breakpoint 1, Main (mode=0) at ../Main.m3:127 127 BEGIN Current language: auto; currently Modula-3 (m3gdb) n 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) Single stepping until exit from function __i686.get_pc_thunk.bx, which has no line number information. 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 157 RTIO.Flush (); (m3gdb) AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) at ../src/runtime/common/RTLinker.m3:121 121 IF (m = NIL) THEN RETURN END; (m3gdb) 122 AddUnitI(m); (m3gdb) Breakpoint 1, Main (mode=1) at ../Main.m3:127 127 BEGIN (m3gdb) 0x1c00283e in __i686.get_pc_thunk.bx () (m3gdb) finish Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 127 BEGIN (m3gdb) n 131 iolock := NEW (MUTEX); (m3gdb) 132 stop := NEW (Thread.Condition); (m3gdb) l 127 BEGIN 128 129 (* Thread.MinDefaultStackSize (20000); *) 130 131 iolock := NEW (MUTEX); 132 stop := NEW (Thread.Condition); 133 134 com := NEW (A, limit := 2000); 135 com.done := NEW (Thread.Condition); 136 com.first := 1; (m3gdb) n 134 com := NEW (A, limit := 2000); (m3gdb) 135 com.done := NEW (Thread.Condition); (m3gdb) 136 com.first := 1; (m3gdb) 137 com.next := 1; (m3gdb) 138 com.last := 1; (m3gdb) 139 t := NEW (T, id := 1, limit := 15); (m3gdb) 141 INC (com.count); (m3gdb) 142 Int (com.count, 5, ": "); (m3gdb) 144 th := Thread.Fork (t); (m3gdb) 145 t.thread := th; (m3gdb) 146 LOCK com DO (m3gdb) 147 Thread.Broadcast (com.done); (m3gdb) 148 END; (m3gdb) 151 LOCK com DO (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) 152 WHILE (com.next # 0) DO (m3gdb) 153 com.Wait (com.done); END; (m3gdb) ^C[New process 15851] ^C Program received signal SIGINT, Interrupt. [Switching to process 15851] 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) thread apply all bt Thread 11 (process 15851, thread 0x85cc4000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc40b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Current language: auto; currently c Thread 10 (process 15851, thread 0x84895400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848954b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, mutex=0x2dc1d0dc, abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/uthread_cond.c:431 #3 0x0dc225a7 in _thread_gc (arg=0x0) at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 #4 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #5 0x0000002b in ?? () #6 0x00000000 in ?? () Thread 9 (process 15851, thread 0x84895c00): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x84895cb0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:91 #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #9 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #10 0x0000002b in ?? () #11 0x00000000 in ?? () Thread 8 (process 15851, thread 0x84895000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x848950b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 7 (process 15851, thread 0x88197400): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881974b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 6 (process 15851, thread 0x88197000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x881970b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 5 (process 15851, thread 0x8931f800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f8b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 4 (process 15851, thread 0x8931f000): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x8931f0b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:90 #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #8 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #9 0x0000002b in ?? () #10 0x00000000 in ?? () Thread 3 (process 15851, thread 0x856ab400): #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 ) at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 Cannot access memory at address 0x2e493 Thread 2 (process 15851): #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, fname=0x2dc1d0c8 "", lineno=767676616) at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, time_remaining=0x7de7fc60) at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, rem=0x7de7fc60) at ../src/thread/PTHREAD/ThreadPThreadC.c:317 #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ThreadPThread.m3:740 #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ThreadPThread.m3:1253 #8 0x1c021a29 in SuspendOthers () at ../src/thread/PTHREAD/ThreadPThread.m3:1029 #9 0x1c0086b3 in CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:735 #10 0x1c008672 in CollectSome () at ../src/runtime/common/RTCollector.m3:709 #11 0x1c008125 in CollectEnough () at ../src/runtime/common/RTCollector.m3:643 #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:363 #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:222 #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTAllocator.m3:120 #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol table. ) at ../Main.m3:110 #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:588 #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:564 #18 0x0dc2237f in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:240 #19 0x0000002b in ?? () #20 0x00000000 in ?? () Thread 1 (process 15851, thread 0x85cc4800): #0 _thread_kern_sched (scp=0x0) at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, lock=0x85cc48b0, fname=0x1
, lineno=1) at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../Main.m3:153 #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:399 #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:113 #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:122 #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) at _m3main.mc:4 #11 0x1c00268c in ___start () #12 0x1c0025df in _start () #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 (m3gdb) I also tried increasing the default stack size; it didn't help. If you want me to test anything, I'll be happy to try it. 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 Sun Oct 18 20:09:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:09:02 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> Message-ID: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> OK, now this is more interesting. We see that thread 2 is trying to get a GC cycle initiated by stopping the other threads. I am guessing that they are not responding to the thread signal being sent to them. Can you try with @M3debugthreads? 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > Quoting Tony Hosking : > >>> Thread 1 (process 23708, thread 0x862c9400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0xbb315 >>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >> >> So what is thread 1 up to? > > I don't really understand what's going on there. But I made another > test which might or might not be helpful. I single-stepped in thread 1 > until it blocks. We get actually no output from other threads then > (though several have been started, but then thread 3 seems to be > corrupt. Here is the debugger session: > > > -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm > GNU gdb plus Modula-3 6.4 > Copyright 2005 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 "i686-openbsd"... > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Main Main.m3 Main_M3_tcb594446_LINK > Main.i3 Main.mc > Main.ic Main_M3_t9b50f823_INIT > (m3gdb) b Main > Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. > (m3gdb) r > Starting program: /home/hudson/workspace/cm3-lastok-build- > I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm > Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. > [Switching to process 15851, thread 0x85cc4800] > > Breakpoint 1, Main (mode=0) at ../Main.m3:127 > 127 BEGIN > Current language: auto; currently Modula-3 > (m3gdb) n > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) > Single stepping until exit from function __i686.get_pc_thunk.bx, > which has no line number information. > 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 > 157 RTIO.Flush (); > (m3gdb) > AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) > at ../src/runtime/common/RTLinker.m3:121 > 121 IF (m = NIL) THEN RETURN END; > (m3gdb) > 122 AddUnitI(m); > (m3gdb) > > Breakpoint 1, Main (mode=1) at ../Main.m3:127 > 127 BEGIN > (m3gdb) > 0x1c00283e in __i686.get_pc_thunk.bx () > (m3gdb) finish > Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () > 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 > 127 BEGIN > (m3gdb) n > 131 iolock := NEW (MUTEX); > (m3gdb) > 132 stop := NEW (Thread.Condition); > (m3gdb) l > 127 BEGIN > 128 > 129 (* Thread.MinDefaultStackSize (20000); *) > 130 > 131 iolock := NEW (MUTEX); > 132 stop := NEW (Thread.Condition); > 133 > 134 com := NEW (A, limit := 2000); > 135 com.done := NEW (Thread.Condition); > 136 com.first := 1; > (m3gdb) n > 134 com := NEW (A, limit := 2000); > (m3gdb) > 135 com.done := NEW (Thread.Condition); > (m3gdb) > 136 com.first := 1; > (m3gdb) > 137 com.next := 1; > (m3gdb) > 138 com.last := 1; > (m3gdb) > 139 t := NEW (T, id := 1, limit := 15); > (m3gdb) > 141 INC (com.count); > (m3gdb) > 142 Int (com.count, 5, ": "); > (m3gdb) > 144 th := Thread.Fork (t); > (m3gdb) > 145 t.thread := th; > (m3gdb) > 146 LOCK com DO > (m3gdb) > 147 Thread.Broadcast (com.done); > (m3gdb) > 148 END; > (m3gdb) > 151 LOCK com DO > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > 152 WHILE (com.next # 0) DO > (m3gdb) > 153 com.Wait (com.done); END; > (m3gdb) > > > ^C[New process 15851] > ^C > Program received signal SIGINT, Interrupt. > [Switching to process 15851] > 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) thread apply all bt > > Thread 11 (process 15851, thread 0x85cc4000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc40b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > Current language: auto; currently c > > Thread 10 (process 15851, thread 0x84895400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848954b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, > mutex=0x2dc1d0dc, > abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ > uthread_cond.c:431 > #3 0x0dc225a7 in _thread_gc (arg=0x0) > at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 > #4 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #5 0x0000002b in ?? () > #6 0x00000000 in ?? () > > Thread 9 (process 15851, thread 0x84895c00): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x84895cb0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:91 > #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #9 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #10 0x0000002b in ?? () > #11 0x00000000 in ?? () > > Thread 8 (process 15851, thread 0x84895000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x848950b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 7 (process 15851, thread 0x88197400): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881974b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 6 (process 15851, thread 0x88197000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x881970b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 5 (process 15851, thread 0x8931f800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f8b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 4 (process 15851, thread 0x8931f000): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x8931f0b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 > #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:90 > #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #8 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #9 0x0000002b in ?? () > #10 0x00000000 in ?? () > > Thread 3 (process 15851, thread 0x856ab400): > #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 > ) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 > Cannot access memory at address 0x2e493 > > Thread 2 (process 15851): > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 > #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 > #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, > fname=0x2dc1d0c8 "", lineno=767676616) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 > #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, > time_remaining=0x7de7fc60) > at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 > #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, > rem=0x7de7fc60) > at ../src/thread/PTHREAD/ThreadPThreadC.c:317 > #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ > ThreadPThread.m3:740 > #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ > ThreadPThread.m3:1253 > #8 0x1c021a29 in SuspendOthers () > at ../src/thread/PTHREAD/ThreadPThread.m3:1029 > #9 0x1c0086b3 in CollectSomeInStateZero () > at ../src/runtime/common/RTCollector.m3:735 > #10 0x1c008672 in CollectSome () at ../src/runtime/common/ > RTCollector.m3:709 > #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ > RTCollector.m3:643 > #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:363 > #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in > symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:222 > #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code 35 > in symbol table. > ) > at ../src/runtime/common/RTAllocator.m3:120 > #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../Main.m3:110 > #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in symbol > table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:588 > #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in > symbol table. > ) > at ../src/thread/PTHREAD/ThreadPThread.m3:564 > #18 0x0dc2237f in _thread_start () > at /usr/src/lib/libpthread/uthread/uthread_create.c:240 > #19 0x0000002b in ?? () > #20 0x00000000 in ?? () > > Thread 1 (process 15851, thread 0x85cc4800): > #0 _thread_kern_sched (scp=0x0) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 > #1 0x0dc2b200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD, > lock=0x85cc48b0, fname=0x1
, lineno=1) > at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 > #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 > #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) > at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 > #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol > table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 > #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 > #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol > table. > ) at ../Main.m3:153 > #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:399 > #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:113 > #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol > table. > ) at ../src/runtime/common/RTLinker.m3:122 > #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) > at _m3main.mc:4 > #11 0x1c00268c in ___start () > #12 0x1c0025df in _start () > #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 > (m3gdb) > > I also tried increasing the default stack size; it didn't help. > If you want me to test anything, I'll be happy to try it. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 18 20:55:31 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 14:55:31 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> Message-ID: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Do we have any idea when this problem started on OpenBSD? Has it always been there? On 18 Oct 2009, at 14:09, Tony Hosking wrote: > OK, now this is more interesting. We see that thread 2 is trying to > get a GC cycle initiated by stopping the other threads. I am > guessing that they are not responding to the thread signal being > sent to them. Can you try with @M3debugthreads? > > > > 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>>> Thread 1 (process 23708, thread 0x862c9400): >>>> #0 _thread_kern_sched (scp=Cannot access memory at address 0xbb319 >>>> ) >>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>> Cannot access memory at address 0xbb315 >>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>> (m3gdb) >>> >>> So what is thread 1 up to? >> >> I don't really understand what's going on there. But I made another >> test which might or might not be helpful. I single-stepped in >> thread 1 >> until it blocks. We get actually no output from other threads then >> (though several have been started, but then thread 3 seems to be >> corrupt. Here is the debugger session: >> >> >> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >> GNU gdb plus Modula-3 6.4 >> Copyright 2005 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 "i686-openbsd"... >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Main Main.m3 >> Main_M3_tcb594446_LINK >> Main.i3 Main.mc >> Main.ic Main_M3_t9b50f823_INIT >> (m3gdb) b Main >> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >> (m3gdb) r >> Starting program: /home/hudson/workspace/cm3-lastok-build- >> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >> [Switching to process 15851, thread 0x85cc4800] >> >> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >> 127 BEGIN >> Current language: auto; currently Modula-3 >> (m3gdb) n >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) >> Single stepping until exit from function __i686.get_pc_thunk.bx, >> which has no line number information. >> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >> 157 RTIO.Flush (); >> (m3gdb) >> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >> at ../src/runtime/common/RTLinker.m3:121 >> 121 IF (m = NIL) THEN RETURN END; >> (m3gdb) >> 122 AddUnitI(m); >> (m3gdb) >> >> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) >> 0x1c00283e in __i686.get_pc_thunk.bx () >> (m3gdb) finish >> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >> 127 BEGIN >> (m3gdb) n >> 131 iolock := NEW (MUTEX); >> (m3gdb) >> 132 stop := NEW (Thread.Condition); >> (m3gdb) l >> 127 BEGIN >> 128 >> 129 (* Thread.MinDefaultStackSize (20000); *) >> 130 >> 131 iolock := NEW (MUTEX); >> 132 stop := NEW (Thread.Condition); >> 133 >> 134 com := NEW (A, limit := 2000); >> 135 com.done := NEW (Thread.Condition); >> 136 com.first := 1; >> (m3gdb) n >> 134 com := NEW (A, limit := 2000); >> (m3gdb) >> 135 com.done := NEW (Thread.Condition); >> (m3gdb) >> 136 com.first := 1; >> (m3gdb) >> 137 com.next := 1; >> (m3gdb) >> 138 com.last := 1; >> (m3gdb) >> 139 t := NEW (T, id := 1, limit := 15); >> (m3gdb) >> 141 INC (com.count); >> (m3gdb) >> 142 Int (com.count, 5, ": "); >> (m3gdb) >> 144 th := Thread.Fork (t); >> (m3gdb) >> 145 t.thread := th; >> (m3gdb) >> 146 LOCK com DO >> (m3gdb) >> 147 Thread.Broadcast (com.done); >> (m3gdb) >> 148 END; >> (m3gdb) >> 151 LOCK com DO >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> 152 WHILE (com.next # 0) DO >> (m3gdb) >> 153 com.Wait (com.done); END; >> (m3gdb) >> >> >> ^C[New process 15851] >> ^C >> Program received signal SIGINT, Interrupt. >> [Switching to process 15851] >> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) thread apply all bt >> >> Thread 11 (process 15851, thread 0x85cc4000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc40b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> Current language: auto; currently c >> >> Thread 10 (process 15851, thread 0x84895400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848954b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >> mutex=0x2dc1d0dc, >> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >> uthread_cond.c:431 >> #3 0x0dc225a7 in _thread_gc (arg=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >> #4 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #5 0x0000002b in ?? () >> #6 0x00000000 in ?? () >> >> Thread 9 (process 15851, thread 0x84895c00): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x84895cb0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:91 >> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #9 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #10 0x0000002b in ?? () >> #11 0x00000000 in ?? () >> >> Thread 8 (process 15851, thread 0x84895000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x848950b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 7 (process 15851, thread 0x88197400): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881974b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 6 (process 15851, thread 0x88197000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x881970b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 5 (process 15851, thread 0x8931f800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f8b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 4 (process 15851, thread 0x8931f000): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x8931f0b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:90 >> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #8 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #9 0x0000002b in ?? () >> #10 0x00000000 in ?? () >> >> Thread 3 (process 15851, thread 0x856ab400): >> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >> ) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >> Cannot access memory at address 0x2e493 >> >> Thread 2 (process 15851): >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >> fname=0x2dc1d0c8 "", lineno=767676616) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >> time_remaining=0x7de7fc60) >> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >> rem=0x7de7fc60) >> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:740 >> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >> ThreadPThread.m3:1253 >> #8 0x1c021a29 in SuspendOthers () >> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >> #9 0x1c0086b3 in CollectSomeInStateZero () >> at ../src/runtime/common/RTCollector.m3:735 >> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >> RTCollector.m3:709 >> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >> RTCollector.m3:643 >> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >> in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:363 >> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:222 >> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >> 35 in symbol table. >> ) >> at ../src/runtime/common/RTAllocator.m3:120 >> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../Main.m3:110 >> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >> symbol table. >> ) >> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >> #18 0x0dc2237f in _thread_start () >> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >> #19 0x0000002b in ?? () >> #20 0x00000000 in ?? () >> >> Thread 1 (process 15851, thread 0x85cc4800): >> #0 _thread_kern_sched (scp=0x0) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >> (state=PS_SIGTHREAD, >> lock=0x85cc48b0, fname=0x1
, lineno=1) >> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >> table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >> table. >> ) at ../Main.m3:153 >> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:399 >> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:113 >> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >> table. >> ) at ../src/runtime/common/RTLinker.m3:122 >> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >> at _m3main.mc:4 >> #11 0x1c00268c in ___start () >> #12 0x1c0025df in _start () >> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >> (m3gdb) >> >> I also tried increasing the default stack size; it didn't help. >> If you want me to test anything, I'll be happy to try it. >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Mon Oct 19 00:59:48 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 00:59:48 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Quoting Tony Hosking : > Do we have any idea when this problem started on OpenBSD? Has it > always been there? No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ Build #22 on 27. September was the last good one. Build #23 on 29. September hangs at p007. > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? Jay's server is offline again. I'll try again tomorrow morning. I could have thought of @M3debugthreads myself :-/ 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 Mon Oct 19 00:27:12 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sun, 18 Oct 2009 16:27:12 -0600 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> Message-ID: <25EDFCD1-6950-4911-9192-E6CCD84B702F@hotmail.com> We have no real history on OpenBSD, so assume always was this way. - Jay (phone) On Oct 18, 2009, at 12:55 PM, Tony Hosking wrote: > Do we have any idea when this problem started on OpenBSD? Has it > always been there? > > On 18 Oct 2009, at 14:09, Tony Hosking wrote: > >> OK, now this is more interesting. We see that thread 2 is trying >> to get a GC cycle initiated by stopping the other threads. I am >> guessing that they are not responding to the thread signal being >> sent to them. Can you try with @M3debugthreads? >> >> >> >> 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 18 Oct 2009, at 06:30, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>>> Thread 1 (process 23708, thread 0x862c9400): >>>>> #0 _thread_kern_sched (scp=Cannot access memory at address >>>>> 0xbb319 >>>>> ) >>>>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>>>> Cannot access memory at address 0xbb315 >>>>> #0 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1 >>>>> (m3gdb) >>>> >>>> So what is thread 1 up to? >>> >>> I don't really understand what's going on there. But I made another >>> test which might or might not be helpful. I single-stepped in >>> thread 1 >>> until it blocks. We get actually no output from other threads then >>> (though several have been started, but then thread 3 seems to be >>> corrupt. Here is the debugger session: >>> >>> >>> -- bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm >>> GNU gdb plus Modula-3 6.4 >>> Copyright 2005 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 "i686-openbsd"... >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Main Main.m3 >>> Main_M3_tcb594446_LINK >>> Main.i3 Main.mc >>> Main.ic Main_M3_t9b50f823_INIT >>> (m3gdb) b Main >>> Breakpoint 1 at 0x1c0031c9: file ../Main.m3, line 127. >>> (m3gdb) r >>> Starting program: /home/hudson/workspace/cm3-lastok-build- >>> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm >>> Breakpoint 1 at 0x1c0031b5: file ../Main.m3, line 127. >>> [Switching to process 15851, thread 0x85cc4800] >>> >>> Breakpoint 1, Main (mode=0) at ../Main.m3:127 >>> 127 BEGIN >>> Current language: auto; currently Modula-3 >>> (m3gdb) n >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) >>> Single stepping until exit from function __i686.get_pc_thunk.bx, >>> which has no line number information. >>> 0x1c003901 in Main (mode=1006721732) at ../Main.m3:157 >>> 157 RTIO.Flush (); >>> (m3gdb) >>> AddUnit (b={"Main_M3", Declared at: ../Main.m3:127}) >>> at ../src/runtime/common/RTLinker.m3:121 >>> 121 IF (m = NIL) THEN RETURN END; >>> (m3gdb) >>> 122 AddUnitI(m); >>> (m3gdb) >>> >>> Breakpoint 1, Main (mode=1) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) >>> 0x1c00283e in __i686.get_pc_thunk.bx () >>> (m3gdb) finish >>> Run till exit from #0 0x1c00283e in __i686.get_pc_thunk.bx () >>> 0x1c0031c3 in Main (mode=2115735632) at ../Main.m3:127 >>> 127 BEGIN >>> (m3gdb) n >>> 131 iolock := NEW (MUTEX); >>> (m3gdb) >>> 132 stop := NEW (Thread.Condition); >>> (m3gdb) l >>> 127 BEGIN >>> 128 >>> 129 (* Thread.MinDefaultStackSize (20000); *) >>> 130 >>> 131 iolock := NEW (MUTEX); >>> 132 stop := NEW (Thread.Condition); >>> 133 >>> 134 com := NEW (A, limit := 2000); >>> 135 com.done := NEW (Thread.Condition); >>> 136 com.first := 1; >>> (m3gdb) n >>> 134 com := NEW (A, limit := 2000); >>> (m3gdb) >>> 135 com.done := NEW (Thread.Condition); >>> (m3gdb) >>> 136 com.first := 1; >>> (m3gdb) >>> 137 com.next := 1; >>> (m3gdb) >>> 138 com.last := 1; >>> (m3gdb) >>> 139 t := NEW (T, id := 1, limit := 15); >>> (m3gdb) >>> 141 INC (com.count); >>> (m3gdb) >>> 142 Int (com.count, 5, ": "); >>> (m3gdb) >>> 144 th := Thread.Fork (t); >>> (m3gdb) >>> 145 t.thread := th; >>> (m3gdb) >>> 146 LOCK com DO >>> (m3gdb) >>> 147 Thread.Broadcast (com.done); >>> (m3gdb) >>> 148 END; >>> (m3gdb) >>> 151 LOCK com DO >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> 152 WHILE (com.next # 0) DO >>> (m3gdb) >>> 153 com.Wait (com.done); END; >>> (m3gdb) >>> >>> >>> ^C[New process 15851] >>> ^C >>> Program received signal SIGINT, Interrupt. >>> [Switching to process 15851] >>> 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) thread apply all bt >>> >>> Thread 11 (process 15851, thread 0x85cc4000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc40b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> Current language: auto; currently c >>> >>> Thread 10 (process 15851, thread 0x84895400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848954b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc28e2d in pthread_cond_timedwait (cond=0x2dc1d0e0, >>> mutex=0x2dc1d0dc, >>> abstime=0x8816efa8) at /usr/src/lib/libpthread/uthread/ >>> uthread_cond.c:431 >>> #3 0x0dc225a7 in _thread_gc (arg=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_gc.c:181 >>> #4 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #5 0x0000002b in ?? () >>> #6 0x00000000 in ?? () >>> >>> Thread 9 (process 15851, thread 0x84895c00): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x84895cb0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c002b4a in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:91 >>> #7 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #8 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #9 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #10 0x0000002b in ?? () >>> #11 0x00000000 in ?? () >>> >>> Thread 8 (process 15851, thread 0x84895000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x848950b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 7 (process 15851, thread 0x88197400): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881974b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 6 (process 15851, thread 0x88197000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x881970b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 5 (process 15851, thread 0x8931f800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f8b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 4 (process 15851, thread 0x8931f000): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x8931f0b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01cd60 in LockMutex (m=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:159 >>> #5 0x1c002a51 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:90 >>> #6 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #7 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #8 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #9 0x0000002b in ?? () >>> #10 0x00000000 in ?? () >>> >>> Thread 3 (process 15851, thread 0x856ab400): >>> #0 _thread_kern_sched (scp=Cannot access memory at address 0x2e497 >>> ) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:392 >>> Cannot access memory at address 0x2e493 >>> >>> Thread 2 (process 15851): >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> #1 0x0dc2b314 in _thread_kern_poll (wait_reqd=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:760 >>> #2 0x0dc2ae53 in _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:382 >>> #3 0x0dc2b19f in _thread_kern_sched_state (state=767676616, >>> fname=0x2dc1d0c8 "", lineno=767676616) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:550 >>> #4 0x0dc25085 in nanosleep (time_to_sleep=0x7de7fc58, >>> time_remaining=0x7de7fc60) >>> at /usr/src/lib/libpthread/uthread/uthread_nanosleep.c:84 >>> #5 0x1c023b69 in ThreadPThread__Nanosleep (req=0x7de7fc58, >>> rem=0x7de7fc60) >>> at ../src/thread/PTHREAD/ThreadPThreadC.c:317 >>> #6 0x1c02053c in CommonSleep () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:740 >>> #7 0x1c0223bb in StopWorld () at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:1253 >>> #8 0x1c021a29 in SuspendOthers () >>> at ../src/thread/PTHREAD/ThreadPThread.m3:1029 >>> #9 0x1c0086b3 in CollectSomeInStateZero () >>> at ../src/runtime/common/RTCollector.m3:735 >>> #10 0x1c008672 in CollectSome () at ../src/runtime/common/ >>> RTCollector.m3:709 >>> #11 0x1c008125 in CollectEnough () at ../src/runtime/common/ >>> RTCollector.m3:643 >>> #12 0x1c0057c9 in AllocTraced (dataSize=Invalid C/C++ type code 40 >>> in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:363 >>> #13 0x1c004a3e in GetTracedObj (def=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:222 >>> #14 0x1c0043d4 in AllocateTracedObj (defn=Invalid C/C++ type code >>> 35 in symbol table. >>> ) >>> at ../src/runtime/common/RTAllocator.m3:120 >>> #15 0x1c002f67 in Task (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../Main.m3:110 >>> #16 0x1c01f726 in RunThread (me=Invalid C/C++ type code 29 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:588 >>> #17 0x1c01f46b in ThreadBase (param=Invalid C/C++ type code 35 in >>> symbol table. >>> ) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:564 >>> #18 0x0dc2237f in _thread_start () >>> at /usr/src/lib/libpthread/uthread/uthread_create.c:240 >>> #19 0x0000002b in ?? () >>> #20 0x00000000 in ?? () >>> >>> Thread 1 (process 15851, thread 0x85cc4800): >>> #0 _thread_kern_sched (scp=0x0) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:482 >>> #1 0x0dc2b200 in _thread_kern_sched_state_unlock >>> (state=PS_SIGTHREAD, >>> lock=0x85cc48b0, fname=0x1
, lineno=1) >>> at /usr/src/lib/libpthread/uthread/uthread_kern.c:581 >>> #2 0x0dc29b9a in mutex_lock_common (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489 >>> #3 0x0dc29cb8 in pthread_mutex_lock (mutex=0x7e1b90f0) >>> at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675 >>> #4 0x1c01d3a4 in XWait (self=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:240 >>> #5 0x1c01d746 in Wait (m=Invalid C/C++ type code 26 in symbol >>> table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:280 >>> #6 0x1c00387c in Main (mode=Invalid C/C++ type code 39 in symbol >>> table. >>> ) at ../Main.m3:153 >>> #7 0x1c012688 in RunMainBody (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:399 >>> #8 0x1c011a42 in AddUnitI (m=Invalid C/C++ type code 29 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:113 >>> #9 0x1c011ad0 in AddUnit (b=Invalid C/C++ type code 31 in symbol >>> table. >>> ) at ../src/runtime/common/RTLinker.m3:122 >>> #10 0x1c002826 in main (argc=1, argv=0xcfbc15ec, envp=0xcfbc15f4) >>> at _m3main.mc:4 >>> #11 0x1c00268c in ___start () >>> #12 0x1c0025df in _start () >>> #0 0x07b8b8f1 in poll () from /usr/lib/libc.so.50.1 >>> (m3gdb) >>> >>> I also tried increasing the default stack size; it didn't help. >>> If you want me to test anything, I'll be happy to try it. >>> >>> 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 >>> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 03:57:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 21:57:57 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091019005948.wptblfr808sc8400@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> Message-ID: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Aha. That is helpful. I have a feeling it might be related to the changes I made to Thread.Fork. But wait, this is code on the RC path right? Which has a different history? On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Do we have any idea when this problem started on OpenBSD? Has it >> always been there? > > No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ > Build #22 on 27. September was the last good one. > Build #23 on 29. September hangs at p007. > >> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >> >>> OK, now this is more interesting. We see that thread 2 is trying >>> to get a GC cycle initiated by stopping the other threads. I >>> am guessing that they are not responding to the thread signal >>> being sent to them. Can you try with @M3debugthreads? > > Jay's server is offline again. I'll try again tomorrow morning. > I could have thought of @M3debugthreads myself :-/ > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 19 04:04:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 18 Oct 2009 22:04:52 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> Message-ID: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> I don't see anything that changed in the RC threads implementation between 9/27 and 9/29. Did something change in the wrappers? Or in the config file for OpenBSD? On 18 Oct 2009, at 21:57, Tony Hosking wrote: > Aha. That is helpful. I have a feeling it might be related to the > changes I made to Thread.Fork. But wait, this is code on the RC > path right? Which has a different history? > > On 18 Oct 2009, at 18:59, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Do we have any idea when this problem started on OpenBSD? Has it >>> always been there? >> >> No. Look at http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >> Build #22 on 27. September was the last good one. >> Build #23 on 29. September hangs at p007. >> >>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>> >>>> OK, now this is more interesting. We see that thread 2 is >>>> trying to get a GC cycle initiated by stopping the other >>>> threads. I am guessing that they are not responding to the >>>> thread signal being sent to them. Can you try with >>>> @M3debugthreads? >> >> Jay's server is offline again. I'll try again tomorrow morning. >> I could have thought of @M3debugthreads myself :-/ >> >> 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 >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hendrik at topoi.pooq.com Mon Oct 19 04:15:13 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sun, 18 Oct 2009 22:15:13 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 Message-ID: <20091019021513.GA27389@topoi.pooq.com> m3gdb doesn's seem to install. Is this a known problem? Has it been fixed in CVS and therefore should be OK in RC4? Or is it likely I've done something horribly wrong before now? (I have been doing a number of installations and ununstallations on this machine to provide you with error reports, so it's conceivable that there's some crud around somewhere.) hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog Script started, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit Script done, file is m3gdblog hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik From wagner at elegosoft.com Mon Oct 19 08:16:56 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 19 Oct 2009 08:16:56 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091019081656.izo994bns0gk48s0@mail.elegosoft.com> Quoting Tony Hosking : > I don't see anything that changed in the RC threads implementation > between 9/27 and 9/29. Did something change in the wrappers? Or in > the config file for OpenBSD? I just noticed that p007 seems to have been commented out in the test runs before 9/29 :-/ So Jay is probably right, and we have no reliable time frame for the bug. cd ../src/p0/p005 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p006 --- a bit more complicated cd ../src/p0/p006 && cm3 -silent -DM3TESTS >I386_OPENBSD/stdout.build.raw 2>I386_OPENBSD/stderr.build.raw --- p008 --- thread alerts The test itself changed at that time, though. I'll attach the diffs nonetheless. > On 18 Oct 2009, at 21:57, Tony Hosking wrote: > >> Aha. That is helpful. I have a feeling it might be related to the >> changes I made to Thread.Fork. But wait, this is code on the RC >> path right? Which has a different history? Yes, it's in the release branch. I used this command, in case anybody wants to check, too. I slightly extended the time frame to be on the safe side: cvs diff -u -r release_branch_cm3_5_8:2009-09-26 \ -r release_branch_cm3_5_8:2009-09-30 \ m3-libs/*/src m3-sys/*/src > ~/tmp/p007-diffs Jay's system is still offline. I'll try again this evening. Olaf >> On 18 Oct 2009, at 18:59, Olaf Wagner wrote: >> >>> Quoting Tony Hosking : >>> >>>> Do we have any idea when this problem started on OpenBSD? Has it >>>> always been there? >>> >>> No. Look at >>> http://hudson.modula3.com:8080/job/cm3-test-m3tests-I386_OPENBSD/ >>> Build #22 on 27. September was the last good one. >>> Build #23 on 29. September hangs at p007. >>> >>>> On 18 Oct 2009, at 14:09, Tony Hosking wrote: >>>> >>>>> OK, now this is more interesting. We see that thread 2 is >>>>> trying to get a GC cycle initiated by stopping the other >>>>> threads. I am guessing that they are not responding to the >>>>> thread signal being sent to them. Can you try with >>>>> @M3debugthreads? >>> >>> Jay's server is offline again. I'll try again tomorrow morning. >>> I could have thought of @M3debugthreads myself :-/ >>> >>> 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 -------------- ? m3-libs/bitvector/src/BitVector.i3.html ? m3-libs/libm3/src/pickle/ver2/Pickle2.m3+ ? m3-libs/m3core/src/solgnu-thread-diff ? m3-libs/m3core/src/runtime/common/RTLinker.i3+ ? m3-libs/m3core/src/runtime/common/RTLinker.m3+ ? m3-libs/sysutils/src/FSUtils.m3-new ? m3-sys/cm3/src/Makefile.m3.ps ? m3-sys/cm3/src/config/pdiffs ? m3-sys/cminstall/src/config/FreeBSD4x ? m3-sys/cminstall/src/config/pdiffs ? m3-sys/m3middle/src/M3ID.m3-2008-01-29 ? m3-sys/m3middle/src/TWord.m3-xxx ? m3-sys/m3scanner/src/M3Token.i3 ? m3-sys/m3scanner/src/M3Token.m3 ? m3-sys/m3tests-x/src/p0/p100 ? m3-sys/m3tests-x/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests-x/src/p1/p116b ? m3-sys/m3tests-x/src/r0/r003/FreeBSD4 ? m3-sys/m3tests/src/Test.compile ? m3-sys/m3tests/src/p0/p007/Main.m3-hosking ? m3-sys/m3tests/src/p2/FreeBSD4 ? m3-sys/m3tests/src/p2/p223/FreeBSD4 Index: m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -u -u -r1.41.2.1 -r1.41.2.2 --- m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 13 Sep 2009 01:26:41 -0000 1.41.2.1 +++ m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3 29 Sep 2009 10:45:40 -0000 1.41.2.2 @@ -460,7 +460,7 @@ (*------------------------------------------------------------ Fork, Join ---*) CONST - MaxIdle = 10; + MaxIdle = 0; VAR (* LL=activeMu *) allThreads : Activation := NIL; (* global list of active threads *) @@ -588,7 +588,7 @@ (* Since we're no longer slotted, we cannot touch traced refs. *) (* remove ourself from the list of active threads *) - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); IF allThreads = me THEN allThreads := me.next; END; me.next.prev := me.prev; me.prev.next := me.next; @@ -636,7 +636,7 @@ act := t.act; act.handle := CreateThread(NIL, stack_size, ThreadBase, act, CREATE_SUSPENDED, ADR(id)); - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); act.next := allThreads; act.prev := allThreads.prev; allThreads.prev.next := act; @@ -801,7 +801,7 @@ VAR me := GetActivation(); BEGIN <*ASSERT me # NIL*> - LeaveCriticalSection_activeMu(); + EnterCriticalSection_activeMu(); INC (suspend_cnt); IF (suspend_cnt = 1) THEN StopWorld(me) END; Index: m3-sys/cm3/src/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/cm3/src/Main.m3,v retrieving revision 1.19.2.1 retrieving revision 1.19.2.2 diff -u -u -r1.19.2.1 -r1.19.2.2 --- m3-sys/cm3/src/Main.m3 4 Sep 2009 10:26:39 -0000 1.19.2.1 +++ m3-sys/cm3/src/Main.m3 27 Sep 2009 01:15:22 -0000 1.19.2.2 @@ -9,7 +9,7 @@ IMPORT Builder, Dirs, M3Build, M3Options, Makefile, Msg, Utils, WebFile; IMPORT MxConfig(*, M3Config, CMKey, CMCurrent *); (* IMPORT Fmt, Time; only needed for key and expiration check *) -IMPORT Version; +(* IMPORT Version; *) VAR config : TEXT := NIL; Index: m3-sys/m3tests-x/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests-x/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests-x/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests-x/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests-x/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests-x/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. Index: m3-sys/m3tests/src/p0/p007/Main.m3 =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/Main.m3,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -u -r1.3 -r1.3.2.1 --- m3-sys/m3tests/src/p0/p007/Main.m3 13 Mar 2008 15:55:58 -0000 1.3 +++ m3-sys/m3tests/src/p0/p007/Main.m3 27 Sep 2009 12:35:09 -0000 1.3.2.1 @@ -6,154 +6,74 @@ UNSAFE MODULE Main; -IMPORT Thread, (* ThreadF, *) RTIO; +IMPORT Thread; +FROM RTIO IMPORT PutInt, PutText, Flush; TYPE T = Thread.Closure BRANDED "p007 T" OBJECT - id: INTEGER; - limit: INTEGER := 15; - thread: Thread.T; - OVERRIDES - apply := Task; END; - - A = MUTEX BRANDED "p007 common" OBJECT - first, last, next, limit: INTEGER; - done: Thread.Condition; - count: INTEGER := 0; - METHODS - Wait (c: Thread.Condition) := Thread.Wait; END; + id: INTEGER; + limit: INTEGER := 15; + OVERRIDES + apply := Task; + END; VAR - com: A; - stop: Thread.Condition; - iolock: MUTEX; + first, last, next: INTEGER := 1; + limit := 2000; + c := NEW(Thread.Condition); + m := NEW(Thread.Mutex); -PROCEDURE Txt (t: TEXT) = - BEGIN - (* ThreadF.SuspendOthers (); *) - LOCK iolock DO - RTIO.PutText (t); - END; - (* ThreadF.ResumeOthers (); *) - END Txt; -PROCEDURE Int (i: INTEGER; width: INTEGER; pad: TEXT) = +CONST Pad = 5; + +VAR count := 0; +PROCEDURE Inc() = BEGIN - LOCK iolock DO - RTIO.PutInt (i, width); - RTIO.PutText (pad); - END; - END Int; + INC(count); + PutText("\n"); + PutInt(count, Pad); + PutText(": "); + Flush(); + END Inc; -(******* PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; BEGIN LOOP - TRY - LOCK com DO - WHILE (com.next # self.id) DO - com.Wait (com.done); END; - - Int (self.id, 0, "#\n"); - DEC (self.limit); - - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; - ELSE - com.first := self.id + 1; - com.next := com.first; END; - RETURN NIL; - - ELSIF (self.id = com.last) THEN - INC (com.count); - (*Txt ("\n");*) Int (com.count, 5, "####\n"); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); - END; - com.next := com.first; - ELSE - com.next := self.id + 1; - END; END; - FINALLY - Thread.Broadcast (com.done); - END; END; -END Task; -*****) - -PROCEDURE Task (self: T) : REFANY RAISES {} = -VAR next: T; done := FALSE; -BEGIN - WHILE NOT done DO - LOCK com DO - WHILE (com.next # self.id) DO com.Wait (com.done); END; - - Int (self.id, 0, " "); + LOCK m DO + WHILE next # self.id DO Thread.Wait (m, c); END; + PutInt(self.id, Pad); DEC (self.limit); - IF self.limit <= 0 THEN - IF (self.id = com.limit) THEN - com.next := 0; + IF self.id = limit THEN + next := 0; ELSE - com.first := self.id + 1; - com.next := com.first; + first := self.id + 1; + next := first; END; - done := TRUE; - - ELSIF (self.id = com.last) THEN - INC (com.count); - Txt ("\n"); Int (com.count, 5, ": "); - IF (self.id # com.limit) THEN - com.last := self.id + 1; - next := NEW (T, id := com.last, limit := 15); - next.thread := Thread.Fork (next); + Thread.Broadcast(c); + RETURN NIL; + ELSIF self.id = last THEN + Inc(); + IF self.id # limit THEN + last := self.id + 1; + EVAL Thread.Fork(NEW(T, id := last, limit := 15)); END; - com.next := com.first; + next := first; + Thread.Broadcast(c); ELSE - com.next := self.id + 1; + next := self.id + 1; + Thread.Broadcast(c); END; - Thread.Broadcast (com.done); - END; (*LOCK*) + END; END; - RETURN NIL; END Task; -VAR - t: T; - th: Thread.T; - BEGIN - -(* Thread.MinDefaultStackSize (20000); *) - -iolock := NEW (MUTEX); -stop := NEW (Thread.Condition); - -com := NEW (A, limit := 2000); -com.done := NEW (Thread.Condition); -com.first := 1; -com.next := 1; -com.last := 1; -t := NEW (T, id := 1, limit := 15); - -INC (com.count); -Int (com.count, 5, ": "); - -th := Thread.Fork (t); -t.thread := th; -LOCK com DO - Thread.Broadcast (com.done); -END; - -LOOP - LOCK com DO - WHILE (com.next # 0) DO - com.Wait (com.done); END; - EXIT; END; END; - -Txt("\nDone.\n"); -RTIO.Flush (); - + LOCK m DO + Inc(); + EVAL Thread.Fork(NEW(T, id := 1, limit := 15)); + Thread.Broadcast(c); + WHILE next # 0 DO Thread.Wait(m, c) END; + PutText("\nDone.\n"); + Flush(); + END; END Main. Index: m3-sys/m3tests/src/p0/p007/stderr.pgm =================================================================== RCS file: /usr/cvs/cm3/m3-sys/m3tests/src/p0/p007/stderr.pgm,v retrieving revision 1.1 retrieving revision 1.1.8.1 diff -u -u -r1.1 -r1.1.8.1 --- m3-sys/m3tests/src/p0/p007/stderr.pgm 8 Mar 2003 22:36:16 -0000 1.1 +++ m3-sys/m3tests/src/p0/p007/stderr.pgm 27 Sep 2009 12:39:19 -0000 1.1.8.1 @@ -1,2015 +1,2016 @@ - 1: 1 - 2: 1 2 - 3: 1 2 3 - 4: 1 2 3 4 - 5: 1 2 3 4 5 - 6: 1 2 3 4 5 6 - 7: 1 2 3 4 5 6 7 - 8: 1 2 3 4 5 6 7 8 - 9: 1 2 3 4 5 6 7 8 9 - 10: 1 2 3 4 5 6 7 8 9 10 - 11: 1 2 3 4 5 6 7 8 9 10 11 - 12: 1 2 3 4 5 6 7 8 9 10 11 12 - 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 - 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 - 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 - 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 - 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 - 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 - 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 - 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 - 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 - 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 - 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 - 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 - 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 - 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 - 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 - 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 - 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 - 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 - 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 - 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 - 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 - 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 - 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 - 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 - 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 - 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 - 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 - 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 - 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 - 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 - 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 - 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 - 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 - 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 - 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 - 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 - 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 - 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 - 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 - 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 - 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 - 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 - 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 - 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 - 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 - 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 - 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 - 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 - 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 - 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 - 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 - 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 - 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 - 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 - 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 - 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 - 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 - 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 - 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 - 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 - 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 - 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 - 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 - 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 - 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 - 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 - 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 - 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 - 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 - 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 - 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 - 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 - 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 - 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 - 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 - 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 - 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 - 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 - 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 - 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 - 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 - 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 - 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 - 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 - 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 - 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 - 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 - 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 - 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 - 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 - 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 - 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 - 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 - 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 - 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 - 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 - 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 - 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 - 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 - 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 - 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 - 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 - 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 - 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 - 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 - 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 - 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 - 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 - 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 - 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 - 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 - 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 - 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 - 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 - 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 - 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 - 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 - 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 - 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 - 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 - 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 - 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 - 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 - 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 - 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 - 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 - 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 - 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 - 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 - 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 - 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 - 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 - 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 - 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 - 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 - 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 - 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 - 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 - 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 - 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 - 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 - 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 - 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 - 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 - 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 - 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 - 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 - 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 - 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 - 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 - 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 - 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 - 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 - 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 - 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 - 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 - 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 - 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 - 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 - 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 - 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 - 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 - 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 - 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 - 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 - 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 - 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 - 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 - 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 - 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 - 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 - 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 - 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 - 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 - 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 - 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 - 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 - 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 - 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 - 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 - 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 - 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 - 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 - 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 - 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 - 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 - 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 - 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 - 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 - 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 - 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 - 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 - 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 - 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 - 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 - 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 - 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 - 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 - 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 - 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 - 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 - 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 - 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 - 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 - 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 - 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 - 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 - 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 - 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 - 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 - 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 - 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 - 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 - 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 - 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 - 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 - 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 - 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 - 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 - 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 - 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 - 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 - 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 - 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 - 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 - 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 - 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 - 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 - 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 - 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 - 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 - 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 - 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 - 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 - 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 - 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 - 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 - 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 - 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 - 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 - 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 - 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 - 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 - 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 - 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 - 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 - 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 - 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 - 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 - 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 - 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 - 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 - 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 - 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 - 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 - 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 - 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 - 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 - 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 - 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 - 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 - 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 - 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 - 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 - 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 - 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 - 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 - 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 - 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 - 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 - 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 - 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 - 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 - 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 - 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 - 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 - 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 - 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 - 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 - 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 - 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 - 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 - 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 - 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 - 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 - 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 - 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 - 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 - 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 - 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 - 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 - 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 - 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 - 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 - 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 - 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 - 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 - 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 - 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 - 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 - 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 - 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 - 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 - 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 - 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 - 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 - 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 - 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 - 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 - 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 - 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 - 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 - 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 - 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 - 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 - 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 - 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 - 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 - 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 - 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 - 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 - 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 - 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 - 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 - 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 - 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 - 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 - 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 - 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 - 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 - 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 - 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 - 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 - 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 - 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 - 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 - 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 - 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 - 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 - 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 - 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 - 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 - 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 - 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 - 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 - 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 - 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 - 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 - 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 - 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 - 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 - 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 - 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 - 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 - 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 - 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 - 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 - 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 - 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 - 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 - 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 - 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 - 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 - 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 - 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 - 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 - 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 - 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 - 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 - 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 - 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 - 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 - 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 - 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 - 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 - 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 - 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 - 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 - 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 - 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 - 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 - 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 - 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 - 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 - 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 - 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 - 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 - 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 - 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 - 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 - 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 - 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 - 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 - 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 - 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 - 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 - 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 - 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 - 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 - 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 - 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 - 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 - 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 - 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 - 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 - 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 - 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 - 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 - 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 - 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 - 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 - 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 - 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 - 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 - 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 - 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 - 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 - 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 - 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 - 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 - 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 - 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 - 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 - 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 - 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 - 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 - 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 - 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 - 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 - 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 - 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 - 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 - 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 - 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 - 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 - 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 - 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 - 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 - 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 - 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 - 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 - 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 - 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 - 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 - 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 - 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 - 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 - 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 - 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 - 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 - 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 - 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 - 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 - 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 - 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 - 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 - 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 - 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 - 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 - 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 - 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 - 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 - 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 - 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 - 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 - 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 - 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 - 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 - 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 - 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 - 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 - 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 - 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 - 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 - 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 - 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 - 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 - 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 - 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 - 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 - 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 - 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 - 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 - 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 - 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 - 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 - 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 - 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 - 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 - 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 - 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 - 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 - 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 - 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 - 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 - 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 - 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 - 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 - 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 - 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 - 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 - 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 - 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 - 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 - 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 - 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 - 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 - 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 - 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 - 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 - 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 - 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 - 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 - 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 - 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 - 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 - 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 - 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 - 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 - 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 - 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 - 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 - 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 - 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 - 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 - 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 - 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 - 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 - 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 - 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 - 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 - 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 - 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 - 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 - 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 - 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 - 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 - 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 - 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 - 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 - 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 - 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 - 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 - 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 - 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 - 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 - 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 - 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 - 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 - 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 - 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 - 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 - 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 - 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 - 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 - 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 - 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 - 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 - 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 - 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 - 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 - 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 - 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 - 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 - 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 - 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 - 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 - 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 - 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 - 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 - 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 - 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 - 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 - 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 - 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 - 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 - 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 - 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 - 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 - 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 - 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 - 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 - 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 - 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 - 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 - 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 - 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 - 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 - 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 - 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 - 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 - 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 - 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 - 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 - 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 - 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 - 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 - 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 - 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 - 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 - 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 - 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 - 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 - 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 - 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 - 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 - 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 - 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 - 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 - 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 - 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 - 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 - 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 - 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 - 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 - 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 - 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 - 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 - 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 - 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 - 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 - 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 - 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 - 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 - 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 - 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 - 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 - 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 - 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 - 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 - 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 - 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 - 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 - 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 - 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 - 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 - 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 - 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 - 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 - 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 - 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 - 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 - 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 - 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 - 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 - 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 - 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 - 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 - 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 - 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 - 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 - 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 - 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 - 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 - 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 - 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 - 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 - 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 - 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 - 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 - 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 - 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 - 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 - 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 - 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 - 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 - 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 - 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 - 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 - 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 - 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 - 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 - 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 - 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 - 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 - 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 - 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 - 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 - 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 - 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 - 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 - 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 - 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 - 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 - 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 - 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 - 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 - 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 - 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 - 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 - 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 - 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 - 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 - 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 - 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 - 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 - 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 - 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 - 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 - 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 - 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 - 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 - 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 - 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 - 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 - 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 - 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 - 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 - 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 - 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 - 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 - 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 - 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 - 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 - 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 - 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 - 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 - 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 - 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 - 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 - 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 - 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 - 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 - 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 - 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 - 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 - 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 - 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 - 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 - 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 - 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 - 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 - 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 - 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 - 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 - 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 - 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 - 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 - 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 - 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 - 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 - 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 - 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 - 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 - 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 - 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 - 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 - 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 - 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 - 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 - 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 - 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 - 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 - 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 - 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 - 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 - 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 - 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 - 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 - 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 - 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 - 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 - 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 - 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 - 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 - 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 - 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 - 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 - 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 - 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 - 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 - 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 - 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 - 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 - 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 - 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 - 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 - 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 - 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 - 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 - 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 - 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 - 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 - 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 - 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 - 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 - 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 - 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 - 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 - 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 - 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 - 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 - 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 - 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 - 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 - 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 - 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 - 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 - 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 - 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 - 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 - 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 - 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 - 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 - 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 - 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 - 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 - 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 - 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 - 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 - 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 - 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 - 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 - 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 - 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 - 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 - 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 - 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 - 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 - 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 - 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 - 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 - 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 - 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 - 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 - 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 - 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 - 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 - 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 - 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 - 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 - 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 - 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 - 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 - 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 - 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 - 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 - 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 - 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 - 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 - 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 - 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 - 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 - 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 - 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 - 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 - 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 - 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 - 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 - 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 - 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 - 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 - 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 - 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 - 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 - 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 - 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 - 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 - 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 - 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 - 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 - 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 - 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 - 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 - 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 - 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 - 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 - 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 - 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 - 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 - 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 - 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 - 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 - 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 - 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 - 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 - 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 - 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 - 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 - 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 - 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 - 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 - 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 - 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 - 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 - 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 - 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 - 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 - 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 - 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 - 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 - 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 - 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 - 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 - 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 - 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 - 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 - 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 - 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 - 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 - 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 - 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 - 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 - 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 - 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 - 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 - 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 - 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 - 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 - 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 - 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 - 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 - 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 - 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 - 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 - 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 - 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 - 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 - 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 - 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 - 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 - 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 - 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 - 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 - 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 - 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 - 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 - 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 - 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 - 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 - 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 - 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 - 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 - 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 - 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 - 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 - 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 - 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 - 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 - 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 - 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 - 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 - 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 - 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 - 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 - 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 - 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 - 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 - 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 - 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 - 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 - 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 - 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 - 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 - 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 - 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 - 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 - 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 - 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 - 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 - 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 - 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 - 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 - 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 - 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 - 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 - 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 - 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 - 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 - 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 - 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 - 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 - 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 - 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 - 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 - 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 - 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 - 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 - 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 - 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 - 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 - 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 - 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 - 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 - 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 - 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 - 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 - 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 - 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 - 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 - 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 - 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 - 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 - 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 - 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 - 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 - 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 - 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 - 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 - 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 - 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 - 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 - 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 - 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 - 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 - 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 - 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 - 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 - 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 - 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 - 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 - 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 - 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 - 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 - 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 - 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 - 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 - 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 - 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 - 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 - 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 - 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 - 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 - 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 - 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 - 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 - 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 - 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 - 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 - 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 - 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 - 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 - 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 - 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 - 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 - 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 - 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 - 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 - 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 - 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 - 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 - 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 - 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 - 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 - 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 - 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 - 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 - 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 - 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 - 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 - 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 - 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 - 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 - 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 - 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 - 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 - 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 - 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 - 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 - 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 - 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 - 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 - 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 - 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 - 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 - 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 - 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 - 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 - 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 - 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 - 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 - 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 - 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 - 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 - 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 - 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 - 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 - 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 - 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 - 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 - 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 - 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 - 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 - 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 - 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 - 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 - 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 - 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 - 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 - 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 - 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 - 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 - 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 - 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 - 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 - 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 - 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 - 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 - 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 - 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 - 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 - 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 - 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 - 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 - 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 - 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 - 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 - 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 - 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 - 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 - 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 - 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 - 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 - 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 - 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 - 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 - 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 - 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 - 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 - 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 - 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 - 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 - 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 - 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 - 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 - 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 - 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 - 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 - 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 - 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 - 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 - 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 - 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 - 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 - 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 - 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 - 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 - 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 - 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 - 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 - 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 - 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 - 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 - 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 - 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 - 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 - 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 - 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 - 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 - 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 - 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 - 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 - 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 - 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 - 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 - 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 - 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 - 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 - 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 - 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 - 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 - 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 - 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 - 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 - 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 - 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 - 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 - 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 - 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 - 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 - 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 - 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 - 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 - 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 - 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 - 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 - 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 - 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 - 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 - 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 - 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 - 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 - 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 - 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 - 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 - 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 - 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 - 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 - 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 - 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 - 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 - 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 - 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 - 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 - 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 - 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 - 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 - 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 - 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 - 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 - 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 - 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 - 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 - 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 - 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 - 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 - 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 - 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 - 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 - 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 - 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 - 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 - 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 - 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 - 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 - 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 - 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 - 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 - 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 - 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 - 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 - 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 - 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 - 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 - 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 - 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 - 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 - 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 - 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 - 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 - 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 - 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 - 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 - 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 - 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 - 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 - 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 - 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 - 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 - 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 - 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 - 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 - 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 - 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 - 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 - 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 - 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 - 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 - 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 - 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 - 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 - 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 - 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 - 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 - 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 - 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 - 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 - 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 - 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 - 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 - 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 - 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 - 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 - 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 - 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 - 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 - 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 - 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 - 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 - 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 - 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 - 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 - 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 - 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 - 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 - 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 - 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 - 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 - 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 - 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 - 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 - 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 - 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 - 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 - 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 - 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 - 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 - 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 - 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 - 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 - 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 - 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 - 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 - 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 - 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 - 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 - 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 - 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 - 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 - 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 - 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 - 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 - 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 - 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 - 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 - 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 - 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 - 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 - 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 - 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 - 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 - 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 - 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 - 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 - 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 - 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 - 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 - 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 - 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 - 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 - 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 - 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 - 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 - 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 - 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 - 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 - 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 - 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 - 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 - 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 - 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 - 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 - 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 - 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 - 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 - 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 - 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 - 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 - 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 - 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 - 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 - 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 - 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 - 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 - 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 - 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 - 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 - 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 - 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 - 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 - 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 - 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 - 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 - 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 - 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 - 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 - 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 - 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 - 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 - 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 - 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 - 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 - 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 - 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 - 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 - 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 - 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 - 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 - 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 - 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 - 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 - 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 - 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 - 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 - 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 - 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 - 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 - 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 - 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 - 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 - 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 - 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 - 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 - 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 - 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 - 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 - 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 - 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 - 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 - 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 - 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 - 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 - 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 - 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 - 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 - 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 - 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 - 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 - 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 - 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 - 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 - 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 - 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 - 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 - 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 - 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 - 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 - 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 - 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 - 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 - 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 - 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 - 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 - 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 - 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 - 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 - 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 - 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 - 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 - 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 - 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 - 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 - 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 - 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 - 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 - 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 - 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 - 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 - 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 - 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 - 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 - 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 - 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 - 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 - 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 - 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 - 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 - 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 - 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 - 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 - 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 - 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 - 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 - 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 - 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 - 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 - 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 - 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 - 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 - 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 - 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 - 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 - 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 - 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 - 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 - 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 - 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 - 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 - 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 - 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 - 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 - 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 - 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 - 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 - 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 - 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 - 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 - 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 - 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 - 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 - 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 - 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 - 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 - 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 - 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 - 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 - 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 - 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 - 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 - 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 - 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 - 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 - 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 - 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 - 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 - 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 - 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 - 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 - 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 - 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 - 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 - 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 - 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 - 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 - 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 - 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 - 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 - 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 - 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 - 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 - 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 - 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 - 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 - 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 - 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 - 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 - 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 - 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 - 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 - 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 - 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 - 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 - 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 - 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 - 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 - 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 - 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 - 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 - 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 - 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 - 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 - 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 - 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 - 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 - 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 - 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 - 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 - 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 - 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 - 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 - 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 - 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 - 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 - 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 - 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 - 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 - 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 - 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 - 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 - 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 - 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 - 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 - 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 - 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 - 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 - 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 - 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 - 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 - 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 - 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 - 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 - 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 - 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 - 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 - 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 - 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 - 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 - 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 - 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 - 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 - 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 - 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 - 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 - 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 - 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 - 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 - 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 - 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 - 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 - 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 - 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 - 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 - 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 - 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 - 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 - 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 - 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 - 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 - 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 - 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 - 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 - 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 - 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 - 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 - 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 - 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 - 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 - 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 - 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 - 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 - 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 - 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 - 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 - 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 - 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 - 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 - 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 - 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 - 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 - 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 - 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 - 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 - 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 - 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 - 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 - 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 - 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 - 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 - 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 - 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 - 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 - 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 - 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 - 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 - 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 - 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 - 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 - 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 - 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 - 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 - 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 - 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 - 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 - 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 - 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 - 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 - 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 - 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 - 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 - 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 - 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 - 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 - 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 - 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 - 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 - 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 - 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 - 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 - 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 - 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 - 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 - 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 - 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 - 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 - 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 - 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 - 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 - 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 - 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 - 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 - 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 - 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 - 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 - 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 - 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 - 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 - 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 - 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 - 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 - 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 - 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 - 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 - 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 - 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 - 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 - 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 - 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 - 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 - 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 - 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 - 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 - 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 - 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 - 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 - 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 - 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 - 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 - 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 - 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 - 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 - 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 - 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 - 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 - 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 - 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 - 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 - 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 - 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 - 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 - 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 - 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 - 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 - 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 - 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 - 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 - 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 - 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 - 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 - 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 - 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 - 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 - 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 - 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 - 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 - 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 - 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 - 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 - 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 - 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 - 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 - 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 - 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 - 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 - 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 - 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 - 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 - 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 - 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 - 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 - 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 - 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 - 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 - 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 - 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 - 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 - 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 - 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 - 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 - 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 - 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 - 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 - 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 - 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 - 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 - 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 - 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 - 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 - 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 - 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 - 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 - 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 - 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 - 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 - 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 - 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 - 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 - 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 - 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 - 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 - 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 - 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 - 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 - 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 - 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 - 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 - 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 - 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 - 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 - 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 - 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 - 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 - 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 - 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 - 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 - 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 - 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 - 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 - 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 - 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 - 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 - 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 - 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 - 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 - 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 - 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 - 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 - 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 - 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 - 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 - 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 - 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 - 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 - 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 - 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 - 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 - 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 - 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 - 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 - 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 - 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 - 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 - 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 - 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 - 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 - 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 - 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 - 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 - 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 - 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 - 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 - 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 - 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 - 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 - 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 - 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 - 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 - 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 - 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 - 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 - 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 - 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 - 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 - 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 - 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 - 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 - 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 - 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 - 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 - 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 - 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 - 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 - 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 - 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 - 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 - 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 - 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 - 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 - 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 - 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 - 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 - 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 - 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 - 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 - 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 - 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 - 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 - 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 - 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 - 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 - 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 - 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 - 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 - 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 - 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 - 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 - 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 - 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 - 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 - 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 - 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 - 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 - 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 - 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 - 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 - 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 - 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 - 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 - 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 - 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 - 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 - 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 - 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 - 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 - 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 - 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 - 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 - 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 - 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 - 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 - 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 - 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 - 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 - 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 - 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 - 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 - 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 - 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 - 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 - 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 - 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 - 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 - 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 - 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 - 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 - 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 - 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 - 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 - 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 - 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 - 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 - 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 - 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 - 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 - 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 - 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 - 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 - 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 - 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 - 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 - 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 - 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 - 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 - 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 - 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 - 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 - 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 - 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 - 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 - 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 - 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 - 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 - 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 - 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 - 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 - 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 - 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 - 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 - 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 - 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 - 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 - 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 - 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 - 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 - 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 - 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 - 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 - 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 - 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 - 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 - 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 - 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 - 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 - 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 - 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 - 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 - 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 - 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 - 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 - 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 - 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 - 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 - 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 - 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 - 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 - 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 - 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 - 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 - 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 - 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 - 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 - 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 - 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 - 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 - 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 - 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 - 2007: 1993 1994 1995 1996 1997 1998 1999 2000 - 2008: 1994 1995 1996 1997 1998 1999 2000 - 2009: 1995 1996 1997 1998 1999 2000 - 2010: 1996 1997 1998 1999 2000 - 2011: 1997 1998 1999 2000 - 2012: 1998 1999 2000 - 2013: 1999 2000 - 2014: 2000 + + 1: 1 + 2: 1 2 + 3: 1 2 3 + 4: 1 2 3 4 + 5: 1 2 3 4 5 + 6: 1 2 3 4 5 6 + 7: 1 2 3 4 5 6 7 + 8: 1 2 3 4 5 6 7 8 + 9: 1 2 3 4 5 6 7 8 9 + 10: 1 2 3 4 5 6 7 8 9 10 + 11: 1 2 3 4 5 6 7 8 9 10 11 + 12: 1 2 3 4 5 6 7 8 9 10 11 12 + 13: 1 2 3 4 5 6 7 8 9 10 11 12 13 + 14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 + 15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 16: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + 17: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 + 18: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 + 19: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + 20: 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 + 21: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + 22: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 + 23: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + 24: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 + 25: 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + 26: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 + 27: 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 + 28: 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 + 29: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 + 30: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 + 31: 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + 32: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 + 33: 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 + 34: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 + 35: 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 + 36: 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 + 37: 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 + 38: 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 + 39: 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 + 40: 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 + 41: 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 + 42: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + 43: 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 + 44: 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 + 45: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 + 46: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + 47: 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + 48: 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 + 49: 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 + 50: 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 + 51: 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 + 52: 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 + 53: 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 + 54: 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 + 55: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 + 56: 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 + 57: 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + 58: 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 + 59: 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60: 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 + 61: 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + 62: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 + 63: 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + 64: 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 + 65: 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 + 66: 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 + 67: 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 + 68: 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 + 69: 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 + 70: 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 + 71: 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 + 72: 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 + 73: 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 + 74: 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 + 75: 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 + 76: 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 + 77: 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 + 78: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 + 79: 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80: 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 + 81: 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 + 82: 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 + 83: 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 + 84: 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 + 85: 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 + 86: 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 + 87: 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 + 88: 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 + 89: 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 + 90: 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 + 91: 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 + 92: 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 + 93: 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 + 94: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 + 95: 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 + 96: 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 + 97: 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 + 98: 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 + 99: 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100: 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 + 101: 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 + 102: 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 + 103: 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 + 104: 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 + 105: 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 + 106: 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 + 107: 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 + 108: 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 + 109: 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 + 110: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 + 111: 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 + 112: 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 + 113: 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 + 114: 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 + 115: 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 + 116: 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 + 117: 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 + 118: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 + 119: 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 + 121: 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 + 122: 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 + 123: 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 + 124: 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 + 125: 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 + 126: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 + 127: 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 + 128: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 + 129: 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 + 131: 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 + 132: 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 + 133: 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 + 134: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 + 135: 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 + 136: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 + 137: 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + 138: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 + 139: 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140: 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 + 141: 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 + 142: 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 + 143: 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 + 144: 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 + 145: 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 + 146: 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 + 147: 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 + 148: 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 + 149: 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 + 150: 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 + 151: 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 + 152: 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 + 153: 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 + 154: 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 + 155: 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 + 156: 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 + 157: 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 + 158: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 + 159: 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160: 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 + 161: 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 + 162: 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 + 163: 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 + 164: 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 + 165: 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 + 166: 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 + 167: 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 + 168: 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 + 169: 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 + 170: 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 + 171: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 + 172: 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 + 173: 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 + 174: 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 + 175: 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 + 176: 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 + 177: 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 + 178: 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 + 179: 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180: 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 + 181: 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 + 182: 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 + 183: 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 + 184: 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 + 185: 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 + 186: 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 + 187: 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 + 188: 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 + 189: 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 + 190: 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 + 191: 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 + 192: 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 + 193: 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 + 194: 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 + 195: 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 + 196: 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 + 197: 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 + 198: 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 + 199: 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200: 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 + 201: 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 + 202: 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 + 203: 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 + 204: 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 + 205: 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 + 206: 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 + 207: 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 + 208: 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 + 209: 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 + 210: 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 + 211: 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 + 212: 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 + 213: 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 + 214: 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 + 215: 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 + 216: 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 + 217: 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 + 218: 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 + 219: 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220: 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 + 221: 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 + 222: 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 + 223: 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 + 224: 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 + 225: 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 + 226: 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 + 227: 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 + 228: 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 + 229: 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 + 230: 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 + 231: 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 + 232: 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 + 233: 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 + 234: 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 + 235: 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 + 236: 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 + 237: 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 + 238: 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 + 239: 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240: 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 + 241: 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 + 242: 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 + 243: 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 + 244: 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 + 245: 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 + 246: 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 + 247: 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 + 248: 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 + 249: 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 + 250: 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 + 251: 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 + 252: 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 + 253: 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 + 254: 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 + 255: 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 + 256: 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 + 257: 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 + 258: 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 + 259: 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 + 260: 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 + 261: 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 + 262: 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 + 263: 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 + 264: 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 + 265: 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 + 266: 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 + 267: 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 + 268: 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 + 269: 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 + 270: 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 + 271: 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 + 272: 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 + 273: 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 + 274: 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 + 275: 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 + 276: 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 + 277: 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 + 278: 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 + 279: 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 + 280: 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 + 281: 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 + 282: 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 + 283: 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 + 284: 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 + 285: 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 + 286: 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 + 287: 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 + 288: 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 + 289: 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 + 290: 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 + 291: 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 + 292: 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 + 293: 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 + 294: 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 + 295: 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 + 296: 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 + 297: 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 + 298: 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 + 299: 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 + 300: 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 + 301: 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 + 302: 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 + 303: 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 + 304: 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 + 305: 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 + 306: 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 + 307: 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 + 308: 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 + 309: 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 + 310: 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 + 311: 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 + 312: 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 + 313: 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 + 314: 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 + 315: 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 + 316: 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 + 317: 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 + 318: 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 + 319: 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 + 320: 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 + 321: 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 + 322: 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 + 323: 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 + 324: 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 + 325: 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 + 326: 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 + 327: 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 + 328: 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 + 329: 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 + 330: 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 + 331: 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 + 332: 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 + 333: 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 + 334: 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 + 335: 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 + 336: 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 + 337: 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 + 338: 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 + 339: 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 + 340: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 + 341: 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 + 342: 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 + 343: 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 + 344: 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 + 345: 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 + 346: 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 + 347: 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 + 348: 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 + 350: 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 + 351: 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 + 352: 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 + 353: 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 + 354: 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 + 355: 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 + 356: 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 + 357: 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 + 358: 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 + 359: 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 + 360: 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 + 361: 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 + 362: 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 + 363: 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 + 364: 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 + 365: 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 + 366: 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 + 367: 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 + 368: 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 + 369: 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 + 370: 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 + 371: 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 + 372: 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 + 373: 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 + 374: 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 + 375: 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 + 376: 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 + 377: 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 + 378: 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 + 379: 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 + 380: 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 + 381: 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 + 382: 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 + 383: 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 + 384: 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 + 385: 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 + 386: 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 + 387: 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 + 388: 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 + 389: 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 + 390: 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 + 391: 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 + 392: 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 + 393: 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 + 394: 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 + 395: 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 + 396: 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 + 397: 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 + 398: 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 + 399: 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 + 400: 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 + 401: 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 + 402: 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 + 403: 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 + 404: 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 + 405: 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 + 406: 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 + 407: 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 + 408: 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 + 409: 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 + 410: 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 + 411: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 + 412: 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 + 413: 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 + 414: 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 + 415: 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 + 416: 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 + 417: 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 + 418: 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 + 419: 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 + 420: 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 + 421: 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 + 422: 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 + 423: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 + 424: 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 + 425: 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 + 426: 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 + 427: 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 + 428: 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 + 429: 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 + 430: 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 + 431: 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 + 432: 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 + 433: 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 + 434: 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 + 435: 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 + 436: 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 + 437: 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 + 438: 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 + 440: 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 + 441: 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 + 442: 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 + 443: 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 + 444: 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 + 445: 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 + 446: 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 + 447: 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 + 448: 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 + 449: 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 + 450: 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 + 451: 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 + 452: 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 + 453: 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 + 454: 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 + 455: 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 + 456: 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 + 457: 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 + 458: 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 + 459: 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 + 460: 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 + 461: 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 + 462: 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 + 463: 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 + 464: 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 + 465: 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 + 466: 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 + 467: 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 + 468: 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 + 469: 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 + 470: 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 + 471: 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 + 472: 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 + 473: 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 + 474: 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 + 475: 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 + 476: 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 + 477: 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 + 478: 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 + 479: 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 + 480: 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 + 481: 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 + 482: 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 + 483: 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 + 484: 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 + 485: 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 + 486: 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 + 487: 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 + 488: 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 + 489: 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 + 490: 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 + 491: 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 + 492: 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 + 493: 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 + 494: 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 + 495: 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 + 496: 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 + 497: 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 + 498: 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 + 499: 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 + 500: 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 + 501: 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 + 502: 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 + 503: 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 + 504: 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 + 505: 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 + 506: 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 + 507: 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 + 508: 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 + 509: 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 + 510: 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 + 511: 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 + 512: 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 + 513: 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 + 514: 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 + 515: 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 + 516: 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 + 517: 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 + 518: 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 + 519: 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 + 520: 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 + 521: 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 + 522: 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 + 523: 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 + 524: 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 + 525: 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 + 526: 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 + 527: 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 + 528: 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 + 529: 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 + 530: 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 + 531: 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 + 532: 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 + 533: 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 + 534: 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 + 535: 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 + 536: 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 + 537: 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 + 538: 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 + 539: 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 + 540: 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 + 541: 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 + 542: 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 + 543: 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 + 544: 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 + 545: 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 + 546: 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 + 547: 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 + 548: 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 + 549: 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 + 550: 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 + 551: 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 + 552: 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 + 553: 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 + 554: 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 + 555: 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 + 556: 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 + 557: 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 + 558: 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 + 559: 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 + 560: 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 + 561: 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 + 562: 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 + 563: 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 + 564: 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 + 565: 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 + 566: 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 + 567: 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 + 568: 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 + 569: 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 + 570: 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 + 571: 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 + 572: 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 + 573: 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 + 574: 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 + 575: 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 + 576: 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 + 577: 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 + 578: 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 + 579: 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 + 580: 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 + 581: 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 + 582: 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 + 583: 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 + 584: 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 + 585: 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 + 586: 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 + 587: 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 + 588: 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 + 589: 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 + 590: 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 + 591: 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 + 592: 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 + 593: 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 + 594: 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 + 595: 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 + 596: 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 + 597: 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 + 598: 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 + 599: 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 + 600: 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 + 601: 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 + 602: 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 + 603: 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 + 604: 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 + 605: 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 + 606: 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 + 607: 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 + 608: 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 + 609: 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 + 610: 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 + 611: 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 + 612: 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 + 613: 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 + 614: 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 + 615: 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 + 616: 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 + 617: 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 + 618: 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 + 619: 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 + 620: 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 + 621: 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 + 622: 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 + 623: 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 + 624: 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 + 625: 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 + 626: 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 + 627: 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 + 628: 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 + 629: 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 + 630: 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 + 631: 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 + 632: 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 + 633: 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 + 634: 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 + 635: 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 + 636: 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 + 637: 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 + 638: 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 + 639: 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 + 640: 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 + 641: 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 + 642: 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 + 643: 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 + 644: 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 + 645: 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 + 646: 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 + 647: 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 + 648: 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 + 649: 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 + 650: 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 + 651: 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 + 652: 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 + 653: 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 + 654: 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 + 655: 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 + 656: 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 + 657: 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 + 658: 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 + 659: 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 + 660: 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 + 661: 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 + 662: 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 + 663: 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 + 664: 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 + 665: 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 + 666: 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 + 667: 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 + 668: 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 + 669: 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 + 670: 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 + 671: 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 + 672: 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 + 673: 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 + 674: 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 + 675: 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 + 676: 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 + 677: 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 + 678: 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 + 679: 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 + 680: 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 + 681: 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 + 682: 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 + 683: 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 + 684: 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 + 685: 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 + 686: 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 + 687: 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 + 688: 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 + 689: 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 + 690: 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 + 691: 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 + 692: 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 + 693: 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 + 694: 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 + 695: 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 + 696: 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 + 697: 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 + 698: 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 + 699: 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 + 700: 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 + 701: 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 + 702: 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 + 703: 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 + 704: 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 + 705: 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 + 706: 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 + 707: 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 + 708: 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 + 709: 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 + 710: 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 + 711: 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 + 712: 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 + 713: 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 + 714: 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 + 715: 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 + 716: 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 + 717: 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 + 718: 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 + 719: 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 + 720: 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 + 721: 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 + 722: 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 + 723: 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 + 724: 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 + 725: 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 + 726: 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 + 727: 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 + 728: 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 + 729: 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 + 730: 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 + 731: 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 + 732: 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 + 733: 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 + 734: 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 + 735: 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 + 736: 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 + 737: 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 + 738: 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 + 739: 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 + 740: 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 + 741: 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 + 742: 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 + 743: 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 + 744: 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 + 745: 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 + 746: 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 + 747: 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 + 748: 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 + 749: 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 + 750: 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 + 751: 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 + 752: 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 + 753: 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 + 754: 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 + 755: 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 + 756: 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 + 757: 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 + 758: 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 + 759: 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 + 760: 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 + 761: 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 + 762: 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 + 763: 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 + 764: 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 + 765: 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 + 766: 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 + 767: 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 + 768: 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 + 769: 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 + 770: 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 + 771: 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 + 772: 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 + 773: 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 + 774: 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 + 775: 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 + 776: 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 + 777: 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 + 778: 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 + 779: 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 + 780: 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 + 781: 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 + 782: 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 + 783: 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 + 784: 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 + 785: 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 + 786: 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 + 787: 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 + 788: 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 + 789: 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 + 790: 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 + 791: 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 + 792: 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 + 793: 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 + 794: 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 + 795: 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 + 796: 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 + 797: 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 + 798: 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 + 799: 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 + 800: 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 + 801: 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 + 802: 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 + 803: 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 + 804: 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 + 805: 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 + 806: 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 + 807: 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 + 808: 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 + 809: 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 + 810: 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 + 811: 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 + 812: 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 + 813: 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 + 814: 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 + 815: 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 + 816: 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 + 817: 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 + 818: 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 + 819: 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 + 820: 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 + 821: 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 + 822: 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 + 823: 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 + 824: 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 + 825: 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 + 826: 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 + 827: 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 + 828: 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 + 829: 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 + 830: 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 + 831: 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 + 832: 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 + 833: 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 + 834: 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 + 835: 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 + 836: 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 + 837: 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 + 838: 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 + 839: 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 + 840: 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 + 841: 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 + 842: 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 + 843: 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 + 844: 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 + 845: 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 + 846: 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 + 847: 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 + 848: 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 + 849: 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 + 850: 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 + 851: 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 + 852: 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 + 853: 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 + 854: 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 + 855: 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 + 856: 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 + 857: 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 + 858: 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 + 859: 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 + 860: 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 + 861: 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 + 862: 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 + 863: 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 + 864: 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 + 865: 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 + 866: 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 + 867: 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 + 868: 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 + 869: 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 + 870: 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 + 871: 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 + 872: 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 + 873: 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 + 874: 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 + 875: 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 + 876: 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 + 877: 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 + 878: 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 + 879: 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 + 880: 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 + 881: 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 + 882: 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 + 883: 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 + 884: 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 + 885: 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 + 886: 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 + 887: 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 + 888: 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 + 889: 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 + 890: 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 + 891: 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 + 892: 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 + 893: 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 + 894: 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 + 895: 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 + 896: 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 + 897: 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 + 898: 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 + 899: 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 + 900: 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 + 901: 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 + 902: 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 + 903: 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 + 904: 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 + 905: 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 + 906: 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 + 907: 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 + 908: 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 + 909: 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 + 910: 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 + 911: 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 + 912: 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 + 913: 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 + 914: 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 + 915: 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 + 916: 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 + 917: 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 + 918: 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 + 919: 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 + 920: 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 + 921: 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 + 922: 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 + 923: 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 + 924: 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 + 925: 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 + 926: 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 + 927: 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 + 928: 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 + 929: 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 + 930: 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 + 931: 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 + 932: 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 + 933: 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 + 934: 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 + 935: 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 + 936: 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 + 937: 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 + 938: 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 + 939: 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 + 940: 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 + 941: 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 + 942: 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 + 943: 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 + 944: 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 + 945: 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 + 946: 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 + 947: 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 + 948: 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 + 949: 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 + 950: 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 + 951: 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 + 952: 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 + 953: 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 + 954: 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 + 955: 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 + 956: 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 + 957: 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 + 958: 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 + 959: 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 + 960: 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 + 961: 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 + 962: 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 + 963: 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 + 964: 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 + 965: 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 + 966: 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 + 967: 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 + 968: 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 + 969: 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 + 970: 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 + 971: 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 + 972: 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 + 973: 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 + 974: 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 + 975: 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 + 976: 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 + 977: 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 + 978: 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 + 979: 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 + 980: 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 + 981: 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 + 982: 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 + 983: 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 + 984: 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 + 985: 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 + 986: 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 + 987: 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 + 988: 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 + 989: 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 + 990: 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 + 991: 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 + 992: 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 + 993: 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 + 994: 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 + 995: 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 + 996: 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 + 997: 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 + 998: 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 + 999: 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 + 1000: 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 + 1001: 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 + 1002: 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 + 1003: 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 + 1004: 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 + 1005: 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 + 1006: 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 + 1007: 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 + 1008: 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 + 1009: 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 + 1010: 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 + 1011: 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 + 1012: 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 + 1013: 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 + 1014: 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 + 1015: 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 + 1016: 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 + 1017: 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 + 1018: 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 + 1019: 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 + 1020: 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 + 1021: 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 + 1022: 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 + 1023: 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 + 1024: 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 + 1025: 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 + 1026: 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 + 1027: 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 + 1028: 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 + 1029: 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 + 1030: 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 + 1031: 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 + 1032: 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 + 1033: 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 + 1034: 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 + 1035: 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 + 1036: 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 + 1037: 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 + 1038: 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 + 1039: 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 + 1040: 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 + 1041: 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 + 1042: 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 + 1043: 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 + 1044: 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 + 1045: 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 + 1046: 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 + 1047: 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 + 1048: 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 + 1049: 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 + 1050: 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 + 1051: 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 + 1052: 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 + 1053: 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 + 1054: 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 + 1055: 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 + 1056: 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 + 1057: 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 + 1058: 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 + 1059: 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 + 1060: 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 + 1061: 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 + 1062: 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 + 1063: 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 + 1064: 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 + 1065: 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 + 1066: 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 + 1067: 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 + 1068: 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 + 1069: 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 + 1070: 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 + 1071: 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 + 1072: 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 + 1073: 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 + 1074: 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 + 1075: 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 + 1076: 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 + 1077: 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 + 1078: 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 + 1079: 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 + 1080: 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 + 1081: 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 + 1082: 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 + 1083: 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 + 1084: 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 + 1085: 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 + 1086: 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 + 1087: 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 + 1088: 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 + 1089: 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 + 1090: 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 + 1091: 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 + 1092: 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 + 1093: 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 + 1094: 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 + 1095: 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 + 1096: 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 + 1097: 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 + 1098: 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 + 1099: 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 + 1100: 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 + 1101: 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 + 1102: 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 + 1103: 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 + 1104: 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 + 1105: 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 + 1106: 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 + 1107: 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 + 1108: 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 + 1109: 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 + 1110: 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 + 1111: 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 + 1112: 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 + 1113: 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 + 1114: 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 + 1115: 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 + 1116: 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 + 1117: 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 + 1118: 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 + 1119: 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 + 1120: 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 + 1121: 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 + 1122: 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 + 1123: 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 + 1124: 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 + 1125: 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 + 1126: 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 + 1127: 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 + 1128: 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 + 1129: 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 + 1130: 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 + 1131: 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 + 1132: 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 + 1133: 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 + 1134: 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 + 1135: 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 + 1136: 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 + 1137: 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 + 1138: 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 + 1139: 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 + 1140: 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 + 1141: 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 + 1142: 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 + 1143: 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 + 1144: 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 + 1145: 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 + 1146: 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 + 1147: 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 + 1148: 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 + 1149: 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 + 1150: 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 + 1151: 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 + 1152: 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 + 1153: 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 + 1154: 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 + 1155: 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 + 1156: 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 + 1157: 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 + 1158: 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 + 1159: 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 + 1160: 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 + 1161: 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 + 1162: 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 + 1163: 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 + 1164: 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 + 1165: 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 + 1166: 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 + 1167: 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 + 1168: 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 + 1169: 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 + 1170: 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 + 1171: 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 + 1172: 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 + 1173: 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 + 1174: 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 + 1175: 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 + 1176: 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 + 1177: 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 + 1178: 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 + 1179: 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 + 1180: 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 + 1181: 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 + 1182: 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 + 1183: 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 + 1184: 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 + 1185: 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 + 1186: 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 + 1187: 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 + 1188: 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 + 1189: 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 + 1190: 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 + 1191: 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 + 1192: 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 + 1193: 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 + 1194: 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 + 1195: 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 + 1196: 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 + 1197: 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 + 1198: 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 + 1199: 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 + 1200: 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 + 1201: 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 + 1202: 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 + 1203: 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 + 1204: 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 + 1205: 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 + 1206: 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 + 1207: 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 + 1208: 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 + 1209: 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 + 1210: 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 + 1211: 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 + 1212: 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 + 1213: 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 + 1214: 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 + 1215: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 + 1216: 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 + 1217: 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 + 1218: 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 + 1219: 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 + 1220: 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 + 1221: 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 + 1222: 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 + 1223: 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 + 1224: 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 + 1225: 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 + 1226: 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 + 1227: 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 + 1228: 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 + 1229: 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 + 1230: 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 + 1231: 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 + 1232: 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 + 1233: 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 + 1234: 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 + 1235: 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 + 1236: 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 + 1237: 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 + 1238: 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 + 1239: 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 + 1240: 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 + 1241: 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 + 1242: 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 + 1243: 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 + 1244: 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 + 1245: 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 + 1246: 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 + 1247: 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 + 1248: 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 + 1249: 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 + 1250: 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 + 1251: 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 + 1252: 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 + 1253: 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 + 1254: 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 + 1255: 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 + 1256: 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 + 1257: 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 + 1258: 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 + 1259: 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 + 1260: 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 + 1261: 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 + 1262: 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 + 1263: 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 + 1264: 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 + 1265: 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 + 1266: 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 + 1267: 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 + 1268: 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 + 1269: 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 + 1270: 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 + 1271: 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 + 1272: 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 + 1273: 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 + 1274: 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 + 1275: 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 + 1276: 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 + 1277: 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 + 1278: 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 + 1279: 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 + 1280: 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 + 1281: 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 + 1282: 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 + 1283: 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 + 1284: 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 + 1285: 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 + 1286: 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 + 1287: 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 + 1288: 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 + 1289: 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 + 1290: 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 + 1291: 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 + 1292: 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 + 1293: 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 + 1294: 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 + 1295: 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 + 1296: 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 + 1297: 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 + 1298: 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 + 1299: 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 + 1300: 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 + 1301: 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 + 1302: 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 + 1303: 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 + 1304: 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 + 1305: 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 + 1306: 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 + 1307: 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 + 1308: 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 + 1309: 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 + 1310: 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 + 1311: 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 + 1312: 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 + 1313: 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 + 1314: 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 + 1315: 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 + 1316: 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 + 1317: 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 + 1318: 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 + 1319: 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 + 1320: 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 + 1321: 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 + 1322: 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 + 1323: 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 + 1324: 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 + 1325: 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 + 1326: 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 + 1327: 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 + 1328: 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 + 1329: 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 + 1330: 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 + 1331: 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 + 1332: 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 + 1333: 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 + 1334: 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 + 1335: 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 + 1336: 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 + 1337: 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 + 1338: 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 + 1339: 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 + 1340: 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 + 1341: 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 + 1342: 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 + 1343: 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 + 1344: 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 + 1345: 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 + 1346: 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 + 1347: 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 + 1348: 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 + 1349: 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 + 1350: 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 + 1351: 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 + 1352: 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 + 1353: 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 + 1354: 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 + 1355: 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 + 1356: 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 + 1357: 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 + 1358: 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 + 1359: 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 + 1360: 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 + 1361: 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 + 1362: 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 + 1363: 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 + 1364: 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 + 1365: 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 + 1366: 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 + 1367: 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 + 1368: 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 + 1369: 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 + 1370: 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 + 1371: 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 + 1372: 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 + 1373: 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 + 1374: 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 + 1375: 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 + 1376: 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 + 1377: 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 + 1378: 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 + 1379: 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 + 1380: 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 + 1381: 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 + 1382: 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 + 1383: 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 + 1384: 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 + 1385: 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 + 1386: 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 + 1387: 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 + 1388: 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 + 1389: 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 + 1390: 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 + 1391: 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 + 1392: 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 + 1393: 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 + 1394: 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 + 1395: 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 + 1396: 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 + 1397: 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 + 1398: 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 + 1399: 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 + 1400: 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 + 1401: 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 + 1402: 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 + 1403: 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 + 1404: 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 + 1405: 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 + 1406: 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 + 1407: 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 + 1408: 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 + 1409: 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 + 1410: 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 + 1411: 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 + 1412: 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 + 1413: 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 + 1414: 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 + 1415: 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 + 1416: 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 + 1417: 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 + 1418: 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 + 1419: 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 + 1420: 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 + 1421: 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 + 1422: 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 + 1423: 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 + 1424: 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 + 1425: 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 + 1426: 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 + 1427: 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 + 1428: 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 + 1429: 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 + 1430: 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 + 1431: 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 + 1432: 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 + 1433: 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 + 1434: 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 + 1435: 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 + 1436: 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 + 1437: 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 + 1438: 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 + 1439: 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 + 1440: 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 + 1441: 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 + 1442: 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 + 1443: 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 + 1444: 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 + 1445: 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 + 1446: 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 + 1447: 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 + 1448: 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 + 1449: 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 + 1450: 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 + 1451: 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 + 1452: 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 + 1453: 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 + 1454: 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 + 1455: 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 + 1456: 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 + 1457: 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 + 1458: 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 + 1459: 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 + 1460: 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 + 1461: 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 + 1462: 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 + 1463: 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 + 1464: 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 + 1465: 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 + 1466: 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 + 1467: 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 + 1468: 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 + 1469: 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 + 1470: 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 + 1471: 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 + 1472: 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 + 1473: 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 + 1474: 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 + 1475: 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 + 1476: 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 + 1477: 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 + 1478: 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 + 1479: 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 + 1480: 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 + 1481: 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 + 1482: 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 + 1483: 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 + 1484: 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 + 1485: 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 + 1486: 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 + 1487: 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 + 1488: 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 + 1489: 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 + 1490: 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 + 1491: 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 + 1492: 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 + 1493: 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 + 1494: 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 + 1495: 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 + 1496: 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 + 1497: 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 + 1498: 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 + 1499: 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 + 1500: 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 + 1501: 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 + 1502: 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 + 1503: 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 + 1504: 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 + 1505: 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 + 1506: 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 + 1507: 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 + 1508: 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 + 1509: 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 + 1510: 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 + 1511: 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 + 1512: 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 + 1513: 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 + 1514: 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 + 1515: 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 + 1516: 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 + 1517: 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 + 1518: 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 + 1519: 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 + 1520: 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 + 1521: 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 + 1522: 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 + 1523: 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 + 1524: 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 + 1525: 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 + 1526: 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 + 1527: 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 + 1528: 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 + 1529: 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 + 1530: 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 + 1531: 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 + 1532: 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 + 1533: 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 + 1534: 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 + 1535: 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 + 1536: 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 + 1537: 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 + 1538: 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 + 1539: 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 + 1540: 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 + 1541: 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 + 1542: 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 + 1543: 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 + 1544: 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 + 1545: 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 + 1546: 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 + 1547: 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 + 1548: 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 + 1549: 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 + 1550: 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 + 1551: 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 + 1552: 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 + 1553: 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 + 1554: 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 + 1555: 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 + 1556: 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 + 1557: 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 + 1558: 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 + 1559: 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 + 1560: 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 + 1561: 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 + 1562: 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 + 1563: 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 + 1564: 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 + 1565: 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 + 1566: 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 + 1567: 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 + 1568: 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 + 1569: 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 + 1570: 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 + 1571: 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 + 1572: 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 + 1573: 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 + 1574: 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 + 1575: 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 + 1576: 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 + 1577: 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 + 1578: 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 + 1579: 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 + 1580: 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 + 1581: 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 + 1582: 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 + 1583: 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 + 1584: 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 + 1585: 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 + 1586: 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 + 1587: 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 + 1588: 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 + 1589: 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 + 1590: 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 + 1591: 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 + 1592: 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 + 1593: 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 + 1594: 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 + 1595: 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 + 1596: 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 + 1597: 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 + 1598: 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 + 1599: 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 + 1600: 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 + 1601: 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 + 1602: 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 + 1603: 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 + 1604: 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 + 1605: 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 + 1606: 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 + 1607: 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 + 1608: 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 + 1609: 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 + 1610: 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 + 1611: 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 + 1612: 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 + 1613: 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 + 1614: 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 + 1615: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 + 1616: 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 + 1617: 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 + 1618: 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 + 1619: 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 + 1620: 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 + 1621: 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 + 1622: 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 + 1623: 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 + 1624: 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 + 1625: 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 + 1626: 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 + 1627: 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 + 1628: 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 + 1629: 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 + 1630: 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 + 1631: 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 + 1632: 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 + 1633: 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 + 1634: 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 + 1635: 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 + 1636: 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 + 1637: 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 + 1638: 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 + 1639: 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 + 1640: 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 + 1641: 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 + 1642: 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 + 1643: 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 + 1644: 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 + 1645: 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 + 1646: 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 + 1647: 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 + 1648: 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 + 1649: 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 + 1650: 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 + 1651: 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 + 1652: 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 + 1653: 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 + 1654: 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 + 1655: 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 + 1656: 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 + 1657: 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 + 1658: 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 + 1659: 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 + 1660: 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 + 1661: 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 + 1662: 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 + 1663: 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 + 1664: 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 + 1665: 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 + 1666: 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 + 1667: 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 + 1668: 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 + 1669: 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 + 1670: 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 + 1671: 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 + 1672: 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 + 1673: 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 + 1674: 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 + 1675: 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 + 1676: 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 + 1677: 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 + 1678: 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 + 1679: 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 + 1680: 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 + 1681: 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 + 1682: 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 + 1683: 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 + 1684: 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 + 1685: 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 + 1686: 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 + 1687: 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 + 1688: 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 + 1689: 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 + 1690: 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 + 1691: 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 + 1692: 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 + 1693: 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 + 1694: 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 + 1695: 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 + 1696: 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 + 1697: 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 + 1698: 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 + 1699: 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 + 1700: 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 + 1701: 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 + 1702: 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 + 1703: 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 + 1704: 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 + 1705: 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 + 1706: 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 + 1707: 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 + 1708: 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 + 1709: 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 + 1710: 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 + 1711: 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 + 1712: 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 + 1713: 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 + 1714: 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 + 1715: 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 + 1716: 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 + 1717: 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 + 1718: 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 + 1719: 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 + 1720: 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 + 1721: 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 + 1722: 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 + 1723: 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 + 1724: 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 + 1725: 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 + 1726: 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 + 1727: 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 + 1728: 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 + 1729: 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 + 1730: 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 + 1731: 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 + 1732: 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 + 1733: 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 + 1734: 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 + 1735: 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 + 1736: 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 + 1737: 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 + 1738: 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 + 1739: 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 + 1740: 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 + 1741: 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 + 1742: 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 + 1743: 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 + 1744: 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 + 1745: 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 + 1746: 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 + 1747: 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 + 1748: 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 + 1749: 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 + 1750: 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 + 1751: 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 + 1752: 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 + 1753: 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 + 1754: 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 + 1755: 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 + 1756: 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 + 1757: 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 + 1758: 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 + 1759: 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 + 1760: 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 + 1761: 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 + 1762: 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 + 1763: 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 + 1764: 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 + 1765: 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 + 1766: 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 + 1767: 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 + 1768: 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 + 1769: 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 + 1770: 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 + 1771: 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 + 1772: 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 + 1773: 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 + 1774: 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 + 1775: 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 + 1776: 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 + 1777: 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 + 1778: 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 + 1779: 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 + 1780: 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 + 1781: 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 + 1782: 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 + 1783: 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 + 1784: 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 + 1785: 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 + 1786: 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 + 1787: 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 + 1788: 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 + 1789: 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 + 1790: 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 + 1791: 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 + 1792: 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 + 1793: 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 + 1794: 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 + 1795: 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 + 1796: 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 + 1797: 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 + 1798: 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 + 1799: 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 + 1800: 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 + 1801: 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 + 1802: 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 + 1803: 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 + 1804: 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 + 1805: 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 + 1806: 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 + 1807: 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 + 1808: 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 + 1809: 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 + 1810: 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 + 1811: 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 + 1812: 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 + 1813: 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 + 1814: 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 + 1815: 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 + 1816: 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 + 1817: 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 + 1818: 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 + 1819: 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 + 1820: 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 + 1821: 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 + 1822: 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 + 1823: 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 + 1824: 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 + 1825: 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 + 1826: 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 + 1827: 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 + 1828: 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 + 1829: 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 + 1830: 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 + 1831: 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 + 1832: 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 + 1833: 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 + 1834: 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 + 1835: 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 + 1836: 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 + 1837: 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 + 1838: 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 + 1839: 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 + 1840: 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 + 1841: 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 + 1842: 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 + 1843: 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 + 1844: 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 + 1845: 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 + 1846: 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 + 1847: 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 + 1848: 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 + 1849: 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 + 1850: 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 + 1851: 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 + 1852: 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 + 1853: 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 + 1854: 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 + 1855: 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 + 1856: 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 + 1857: 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 + 1858: 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 + 1859: 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 + 1860: 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 + 1861: 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 + 1862: 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 + 1863: 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 + 1864: 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 + 1865: 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 + 1866: 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 + 1867: 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 + 1868: 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 + 1869: 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 + 1870: 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 + 1871: 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 + 1872: 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 + 1873: 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 + 1874: 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 + 1875: 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 + 1876: 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 + 1877: 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 + 1878: 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 + 1879: 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 + 1880: 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 + 1881: 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 + 1882: 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 + 1883: 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 + 1884: 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 + 1885: 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 + 1886: 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 + 1887: 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 + 1888: 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 + 1889: 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 + 1890: 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 + 1891: 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 + 1892: 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 + 1893: 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 + 1894: 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 + 1895: 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 + 1896: 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 + 1897: 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 + 1898: 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 + 1899: 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 + 1900: 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 + 1901: 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 + 1902: 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 + 1903: 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 + 1904: 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 + 1905: 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 + 1906: 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 + 1907: 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 + 1908: 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 + 1909: 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 + 1910: 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 + 1911: 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 + 1912: 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 + 1913: 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 + 1914: 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 + 1915: 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 + 1916: 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 + 1917: 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 + 1918: 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 + 1919: 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 + 1920: 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 + 1921: 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 + 1922: 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 + 1923: 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 + 1924: 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 + 1925: 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 + 1926: 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 + 1927: 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 + 1928: 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 + 1929: 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 + 1930: 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 + 1931: 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 + 1932: 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 + 1933: 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 + 1934: 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 + 1935: 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 + 1936: 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 + 1937: 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 + 1938: 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 + 1939: 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 + 1940: 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 + 1941: 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 + 1942: 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 + 1943: 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 + 1944: 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 + 1945: 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 + 1946: 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 + 1947: 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 + 1948: 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 + 1949: 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 + 1950: 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 + 1951: 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 + 1952: 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 + 1953: 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 + 1954: 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 + 1955: 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 + 1956: 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 + 1957: 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 + 1958: 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 + 1959: 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 + 1960: 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 + 1961: 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 + 1962: 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 + 1963: 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 + 1964: 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 + 1965: 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 + 1966: 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 + 1967: 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 + 1968: 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 + 1969: 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 + 1970: 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 + 1971: 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 + 1972: 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 + 1973: 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 + 1974: 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 + 1975: 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 + 1976: 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 + 1977: 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 + 1978: 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 + 1979: 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 + 1980: 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 + 1981: 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 + 1982: 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 + 1983: 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 + 1984: 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 + 1985: 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 + 1986: 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 + 1987: 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 + 1988: 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 + 1989: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 + 1990: 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 + 1991: 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 + 1992: 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 + 1993: 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 + 1994: 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 + 1995: 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 + 1996: 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 + 1997: 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 + 1998: 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 + 1999: 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 + 2000: 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2001: 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2002: 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2003: 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2004: 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2005: 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2006: 1992 1993 1994 1995 1996 1997 1998 1999 2000 + 2007: 1993 1994 1995 1996 1997 1998 1999 2000 + 2008: 1994 1995 1996 1997 1998 1999 2000 + 2009: 1995 1996 1997 1998 1999 2000 + 2010: 1996 1997 1998 1999 2000 + 2011: 1997 1998 1999 2000 + 2012: 1998 1999 2000 + 2013: 1999 2000 + 2014: 2000 Done. From mbishop at esoteriq.org Mon Oct 19 21:28:12 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:28:12 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCBDCC.3020102@esoteriq.org> I don't think it's just you. I remember installing m3gdb (or trying to) and having it not work. I'm retrying now to see if I can get it installed. hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From mbishop at esoteriq.org Mon Oct 19 21:35:47 2009 From: mbishop at esoteriq.org (Martin Bishop) Date: Mon, 19 Oct 2009 14:35:47 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <4ADCBF93.2040107@esoteriq.org> Yeah just tried installing again, all I get when I run the install.sh is: installing package m3-sys/m3gdb --- shipping from LINUXLIBC6 --- And that's it. No m3gdb binary anywhere, and the config.log in m3gdb/LINUXLIBC6 directory has no errors. Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing package >> m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From rodney.m.bates at cox.net Mon Oct 19 23:24:17 2009 From: rodney.m.bates at cox.net (Rodney M. Bates) Date: Mon, 19 Oct 2009 16:24:17 -0500 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091019021513.GA27389@topoi.pooq.com> References: <20091019021513.GA27389@topoi.pooq.com> Message-ID: <4ADCD901.1010509@cox.net> Hmm, I've never seen this. I don't know where install.sh is coming from. The only thing in the repository I can find by that name is inside the copy of readline that is in gdb, and it is clearly not the script in question. I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, with build or buildship, which runs cm3 in m3-sys/m3gdb, which uses m3-sys/m3gdb/src/m3makefile, which contains. starting at line 126: % build the exportable link and man page and export them cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) BindExport ("m3gdb" & EXE) ManPage ("m3gdb","1") Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, a different name than the one installed. This is no doubt a leftover from m3gdb's being derived from gdb. The line 127 above looks like it takes care of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship command it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as expected. Where does install.sh come from? hendrik at topoi.pooq.com wrote: > m3gdb doesn's seem to install. > Is this a known problem? > Has it been fixed in CVS and therefore should be OK in RC4? > Or is it likely I've done something horribly wrong before now? > (I have been doing a number of installations and ununstallations on > this machine to provide you with error reports, so it's > conceivable that there's some crud around somewhere.) > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog > Script started, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf > /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls > collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd > setup.txt > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh > installing package m3-sys/m3gdb > --- shipping from LINUXLIBC6 --- > > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin > cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit > Script done, file is m3gdblog > hendrik at notlookedfor:~/cm3/RC3/m3gdb$ > > -- hendrik > > > From jay.krell at cornell.edu Tue Oct 20 00:52:41 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:52:41 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCBDCC.3020102@esoteriq.org> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCBDCC.3020102@esoteriq.org> Message-ID: <687825D2-21DD-40AF-84F0-E79F7B90A469@hotmail.com> Olaf did fix a problem here, something about hardlink vs. copyfile. - Jay (phone) On Oct 19, 2009, at 1:28 PM, Martin Bishop wrote: > I don't think it's just you. I remember installing m3gdb (or trying > to) and having it not work. I'm retrying now to see if I can get it > installed. > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From jay.krell at cornell.edu Tue Oct 20 00:55:21 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 19 Oct 2009 16:55:21 -0600 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: cd scripts grep install.sh * It is there. - Jay (phone) On Oct 19, 2009, at 3:24 PM, "Rodney M. Bates" wrote: > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. > I always use scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/ > gdb, > a different name than the one installed. This is no doubt a > leftover from > m3gdb's being derived from gdb. The line 127 above looks like it > takes care > of the rename. > For me, both "do-cm3-m3gdb ship" (in scripts) and the cm3 -ship > command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, > as expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf /home/hendrik/ >> Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd >> setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ >> -- hendrik >> >> >> > > From wagner at elegosoft.com Tue Oct 20 10:20:23 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 20 Oct 2009 10:20:23 +0200 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <4ADCD901.1010509@cox.net> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> Message-ID: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> install.sh is the name of the installation script of each of the cm3-bin-ws-* packages. I seem to remember that m3dgb was just linked on several platforms and the actual installation failed. It will probably be fixed in the RC4 archives, as soon as the remaining thread problems are understood. As all the RC3 archives contain these thread problems they were never announced in the usenet. I had hoped that we would be able to replace them by RC4 (and a final release) soon, but matters are still unresolved. Help fixing the remaining thread problems or any of the other open issues at https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+Release+5.8+RC4 and https://projects.elego.de/cm3/query?status=resolved&status=reopened&status=assigned&status=analyzed&status=new&status=accepted&group=status&milestone=CM3+release+5.8 will be appreciated. Olaf Quoting "Rodney M. Bates" : > Hmm, I've never seen this. I don't know where install.sh is > coming from. The only thing in the repository I can find by > that name is inside the copy of readline that is in gdb, and it > is clearly not the script in question. I always use > scripts/do-cm3-m3gdb.sh or do-cm3-.sh, > with build or buildship, which runs cm3 in m3-sys/m3gdb, which > uses m3-sys/m3gdb/src/m3makefile, which contains. starting at > line 126: > > % build the exportable link and man page and export them > cp_if ("gdb/gdb" & EXE, "m3gdb" & EXE) > BindExport ("m3gdb" & EXE) > ManPage ("m3gdb","1") > > Note that the compiled executable is in m3-sys/m3gdb/LINUXLIBC6/gdb/gdb, > a different name than the one installed. This is no doubt a leftover from > m3gdb's being derived from gdb. The line 127 above looks like it takes care > of the rename. For me, both "do-cm3-m3gdb ship" (in scripts) and the > cm3 -ship command > it executes (in m3-sys/m3gdb) install a copy in /usr/local/cm3/bin, as > expected. > > Where does install.sh come from? > > > > hendrik at topoi.pooq.com wrote: >> m3gdb doesn's seem to install. >> Is this a known problem? >> Has it been fixed in CVS and therefore should be OK in RC4? >> Or is it likely I've done something horribly wrong before now? >> (I have been doing a number of installations and ununstallations on >> this machine to provide you with error reports, so it's conceivable >> that there's some crud around somewhere.) >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ script m3gdblog >> Script started, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ tar -zxf >> /home/hendrik/Desktop/cm3-bin-ws-m3gdb-LINUXLIBC6-5.8.3-RC3.tgz >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls >> collection-m3gdb.html install.sh m3gdblog m3-sys setup.cmd setup.txt >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ./install.sh installing >> package m3-sys/m3gdb >> --- shipping from LINUXLIBC6 --- >> >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ ls /usr/local/cm3/bin >> cm3 cm3.cfg cm3cg cm3ide config formsedit m3bundle mklib >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ exit >> Script done, file is m3gdblog >> hendrik at notlookedfor:~/cm3/RC3/m3gdb$ -- hendrik >> >> >> -- 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 rcoleburn at scires.com Tue Oct 20 18:23:04 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 20 Oct 2009 12:23:04 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> Message-ID: <4ADDAADA.1E75.00D7.1@scires.com> Jay: I think we would need to delve deep into the implementation to be able to answer all your questions precisely. I've attached a short paper by Andrew Birrell "Implementing Condition Variables with Semaphores" that you may find interesting / enlightening. My concern about using multiple mutex with same condition lies in the queuing operations. My recollection is that I've always associated only one mutex with a condition variable, but that you can have multiple conditions associated with the same mutex. I will go back and re-read Nelson again--its been a few years. Regards, Randy Coleburn >>> Jay K 10/18/2009 4:16 AM >>> I still have questions here. 1) Page 93 of the Nelson book: A monitor consists of some data, a mutex, and zero or more condition variables. A particular condition variable is always used in conjunction with the same mutex and its data. Doesn't this contradict the point made here? Does a condition variable always map to the same mutex or not? Or is this merely describing a typical usage pattern that is a subset of what interface Thread allows? 2) Can Wait only be satisfied by Signal/Broadcast, or also just via UnlockMutex? Depending on the answer to these questions, it seems you can largely merge mutex and condition variable. Condition variable is basically waiting for a thread to exit a mutex. Which is very very similar to LockMutex, except that it doesn't want to take the mutex in the uncontended case, it actually wants to wait for another thread to both acquire and release the mutex. I suspect I'm wrong on both of these. That condition variable really can use multiple mutexes. That exiting a mutex has no obligation to wake condition variables, though it might be in good faith to do so...er..if it is in good faith to not require programmer to use Signal/Broadcast. Thanks, - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 19:13:03 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 That seems a little strange to me but I guess I'll have to keep it in mind. - Jay From: hosking at cs.purdue.edu To: mika at async.async.caltech.edu Date: Thu, 8 Oct 2009 11:00:36 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] condition variables/win32 Sorry, yes, you are right of course! The Modula-3 spec (and the current pthreads-based implementation as also the win32 implementation I expect) do allow a condition variable being mediated by different mutexes. My comment was clouded by my recollection from the pthreads spec that for pthread mutex/cv behavior for other than 1 mutex per cv is undefined. This confusion may have been the source of prior bugs in the pthreads threading implementation, but those bugs are gone now. We support the M3 spec properly. On 8 Oct 2009, at 10:34, Mika Nystrom wrote: Why can't you use the same condition variable with different mutexes? This is dynamic, up to the M3 programmer, no? Tony Hosking writes: --Apple-Mail-96--321618545 Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit In general, it is OK in M3 to associate multiple conditions with the same mutex. But not vice versa. On 8 Oct 2009, at 09:32, Jay K wrote: condition variables/win32 So..one way I think about condition variables is that you want to be woken when someone else leaves the mutex that guards the data that you are dealing with. You want to know when another thread modifies the data. (If you have a reader/writer lock, you only want to be woken when someone exits a write.) Now, if you consider a producer/consumer queue. There are two interesting occurences. Transitions from empty to non-empty and transitions from full to non-full (optionally, if it is fixed size). Consumers wait for empty to non-empty. Consumers signal full to non-full. Producers wait for full to non-full. Producers signal non-empty to empty. So, in this case, one mutex is likely used with with two condition variables. But, what if we take a simplifying deoptimization and assume that a condition variable is only ever associated with one mutex? Anyone existing that mutex wakes up anyone waiting on any condition associated with it? Like, a condition variable I think becomes stateless and everything is about the mutex? What is the downside? Condition variables are allowed to have spurious wakeups. This would "just" increase them. Too much? So, therefore, what would be wrong with the following design? a mutex contains an event and a number of waiters, zero or non-zero if a mutex is exiting with a non-zero number of waiters, signal the event To handle Signal vs. Broadcast method 1: the number of waiters might be interlocked the woken would decrement it if it isn't zero, signal the event again method 2: the number of waiters is both an integer and a semaphore and the lock exiter raises the semaphore by the the integer method 3: it is not an auto-reset event and there is a count and when the count goes to 0, reset the event I think in this case you have to maintain a "wait generation" so that new waiters don't prevent the count from ever hitting 0. I think this #3 is what Java might be doing, and is described here: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html "3.3. The Generation Count Solution" also: http://www.cs.wustl.edu/~schmidt/win32-cv-1.html 3.2. The SetEvent Solution Evaluating the SetEvent Solution Incorrectness -- Is that incorrect case really necessarily incorrect? It seems unfair, since first waiter should be first woken, but..? Am I missing something? A lot? - Jay --Apple-Mail-96--321618545 Content-Type: text/html; charset=US-ASCII Content-Transfer-Encoding: quoted-printable
In = general, it is OK in M3 to associate multiple conditions with the same = mutex.  But not vice versa.

On 8 Oct 2009, = at 09:32, Jay K wrote:

condition = variables/win32
 

So..one way I think about condition = variables
is that you want to be woken when someone else
leaves = the mutex that guards the data that you are dealing with.
You want to = know when another thread modifies the data.
(If you have a = reader/writer lock, you only want to be
woken when someone exits a = write.)
 

Now, if you consider a producer/consumer = queue.
There are two interesting occurences.
Transitions from = empty to non-empty
and transitions from full to non-full = (optionally,
if it is fixed size).
 

Consumers wait = for empty to non-empty.
Consumers signal full to = non-full.
Producers wait for full to non-full.
Producers signal = non-empty to empty.
 

So, in this case, one mutex is = likely used with with two condition = variables.
 

But, what if we take a simplifying = deoptimization and assume that a condition
variable is only ever = associated with one mutex?
Anyone existing that mutex wakes up anyone = waiting on any condition associated with it?
Like, a condition = variable I think becomes stateless and everything is
about the = mutex?
 
 
What is the = downside?
 

Condition variables are allowed to have = spurious wakeups.
This would "just" increase them. Too = much?
 

So, therefore, what would be wrong with the = following design?
 a mutex contains an event 
 and a number of = waiters, zero or non-zero 
 if a mutex is = exiting with a non-zero number of waiters, signal the = event
 

To handle Signal vs. Broadcast
method = 1:
 the number of waiters might be interlocked
 the = woken would decrement it
 if it isn't zero, signal the event = again
 

method 2:
 the number of waiters is both = an integer and a semaphore
 and the lock exiter raises the = semaphore by the the integer

 
method 3:
 it is = not an auto-reset event and there is a count
  and when the = count goes to 0, reset the event
 I think in this case you have = to maintain a "wait generation" 
 so that new = waiters don't prevent the count from ever hitting 0.
 I think = this #3 is what Java might be doing, and is described here:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation Count = Solution"

 
also:
http://www.cs.wu ( http://www.cs.wu/ )= stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = Solution
Evaluating the SetEvent Solution
Incorrectness -- 
 

Is that = incorrect case really necessarily incorrect?
It seems unfair, since = first waiter should be first woken, but..?

 
Am I missing = something? A lot?
 

 - = Jay

= --Apple-Mail-96--321618545-- CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: ImplementingCVs.pdf Type: application/pdf Size: 155564 bytes Desc: not available URL: From hendrik at topoi.pooq.com Tue Oct 20 18:23:43 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 12:23:43 -0400 Subject: [M3devel] RC3 m3gdb on LINUXLIBC6 In-Reply-To: <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> References: <20091019021513.GA27389@topoi.pooq.com> <4ADCD901.1010509@cox.net> <20091020102023.53ogyzmtjc4kgwsg@mail.elegosoft.com> Message-ID: <20091020162343.GA30861@topoi.pooq.com> On Tue, Oct 20, 2009 at 10:20:23AM +0200, Olaf Wagner wrote: > install.sh is the name of the installation script of each of > the > cm3-bin-ws-* packages. I seem to remember that m3dgb was just > linked > on several platforms and the actual installation failed. It > will probably > be fixed in the RC4 archives, as soon as the remaining thread > problems > are understood. > > As all the RC3 archives contain these thread problems they > were never > announced in the usenet. I had hoped that we would be able to > replace > them by RC4 (and a final release) soon, but matters are still > unresolved. It would be useful if there were a working cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3.tgz available, or mayme a cm3-bin-ws-m3gdb-I386_OPENBSD-5.8.3-RC3a.tgz before a definitive answer to the thread problems. If nothing else, it could tell us if the installation problem with m3gdb has indeed been solved. -- hendrik From hendrik at topoi.pooq.com Tue Oct 20 21:35:12 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Tue, 20 Oct 2009 15:35:12 -0400 Subject: [M3devel] cvs size Message-ID: <20091020193512.GA31133@topoi.pooq.com> I just downloaded the entire CVS using cvsup and the control file with the non-comment lines *default host=modula3.elegosoft.com *default base=/farhome/hendrik/cm3/CVSUP/cvs *default prefix=/farhome/hendrik/cm3/CVSUP/cvs *default compress *default preserve and it ended up using a big pile of disk space: #cvsroot hendrik at lovesong:~/cm3/CVSUP$ du -s cvs 1390120 cvs hendrik at lovesong:~/cm3/CVSUP$ Is it likely that I've got everything that the m3 developers might want to have in a distributed versioning system? If so, I'll start experimenting with conversions. -- hendrik From jay.krell at cornell.edu Tue Oct 20 22:26:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 13:26:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <4ADDAADA.1E75.00D7.1@scires.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: I will read the paper, thanks. The java code demonstrates I believe some important applicable methods. I hope to have a "new" ThreadWin32.m3 "soon". In particular, no per-thread event, no wait lists, and counter to help matching up condition waits and signals. And no giant lock. And stil an efficient mutex with no kernel involvement unless there is contention, could/ might use win32 criticalsection with little extra to avoid recursion, or could use something smaller. And no use of SignalObjectAndWait whose documentation recently changed to remove the atomicity claim! - Jay (phone) On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" wrote: > Jay: > > I think we would need to delve deep into the implementation to be > able to answer all your questions precisely. > > I've attached a short paper by Andrew Birrell "Implementing > Condition Variables with Semaphores" that you may find interesting / > enlightening. > > My concern about using multiple mutex with same condition lies in > the queuing operations. My recollection is that I've always > associated only one mutex with a condition variable, but that you > can have multiple conditions associated with the same mutex. > > I will go back and re-read Nelson again--its been a few years. > > Regards, > Randy Coleburn > > >>> Jay K 10/18/2009 4:16 AM >>> > I still have questions here. > > 1) > Page 93 of the Nelson book: > A monitor consists of some data, a mutex, and zero or more condition > variables. A particular condition variable is always used > in conjunction with the same mutex and its data. > > Doesn't this contradict the point made here? > Does a condition variable always map to the same mutex > or not? > > Or is this merely describing a typical usage pattern that is > a subset of what interface Thread allows? > > > 2) > Can Wait only be satisfied by Signal/Broadcast, > or also just via UnlockMutex? > > > Depending on the answer to these questions, > it seems you can largely merge mutex and condition variable. > > > Condition variable is basically waiting for a > thread to exit a mutex. > Which is very very similar to LockMutex, except > that it doesn't want to take the mutex in the uncontended > case, it actually wants to wait for another thread > to both acquire and release the mutex. > > > I suspect I'm wrong on both of these. > That condition variable really can use multiple mutexes. > That exiting a mutex has no obligation to wake condition variables, > though it might be in good faith to do so...er..if it is > in good faith to not require programmer to use Signal/Broadcast. > > > Thanks, > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu; mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 19:13:03 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > That seems a little strange to me but I guess I'll have to keep it > in mind. > > - Jay > > > From: hosking at cs.purdue.edu > To: mika at async.async.caltech.edu > Date: Thu, 8 Oct 2009 11:00:36 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] condition variables/win32 > > Sorry, yes, you are right of course! The Modula-3 spec (and the > current pthreads-based implementation as also the win32 > implementation I expect) do allow a condition variable being > mediated by different mutexes. My comment was clouded by my > recollection from the pthreads spec that for pthread mutex/cv > behavior for other than 1 mutex per cv is undefined. This confusion > may have been the source of prior bugs in the pthreads threading > implementation, but those bugs are gone now. We support the M3 spec > properly. > > On 8 Oct 2009, at 10:34, Mika Nystrom wrote: > > Why can't you use the same condition variable with different mutexes? > > This is dynamic, up to the M3 programmer, no? > > Tony Hosking writes: > > --Apple-Mail-96--321618545 > Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes > Content-Transfer-Encoding: 7bit > > In general, it is OK in M3 to associate multiple conditions with the > same mutex. But not vice versa. > > On 8 Oct 2009, at 09:32, Jay K wrote: > > condition variables/win32 > > > So..one way I think about condition variables > is that you want to be woken when someone else > leaves the mutex that guards the data that you are dealing with. > You want to know when another thread modifies the data. > (If you have a reader/writer lock, you only want to be > woken when someone exits a write.) > > > Now, if you consider a producer/consumer queue. > There are two interesting occurences. > Transitions from empty to non-empty > and transitions from full to non-full (optionally, > if it is fixed size). > > > Consumers wait for empty to non-empty. > Consumers signal full to non-full. > Producers wait for full to non-full. > Producers signal non-empty to empty. > > > So, in this case, one mutex is likely used with with two condition > variables. > > > But, what if we take a simplifying deoptimization and assume that a > condition > variable is only ever associated with one mutex? > Anyone existing that mutex wakes up anyone waiting on any condition > associated with it? > Like, a condition variable I think becomes stateless and everything is > about the mutex? > > > What is the downside? > > > Condition variables are allowed to have spurious wakeups. > This would "just" increase them. Too much? > > > So, therefore, what would be wrong with the following design? > a mutex contains an event > and a number of waiters, zero or non-zero > if a mutex is exiting with a non-zero number of waiters, signal the > event > > > To handle Signal vs. Broadcast > method 1: > the number of waiters might be interlocked > the woken would decrement it > if it isn't zero, signal the event again > > > method 2: > the number of waiters is both an integer and a semaphore > and the lock exiter raises the semaphore by the the integer > > > method 3: > it is not an auto-reset event and there is a count > and when the count goes to 0, reset the event > I think in this case you have to maintain a "wait generation" > so that new waiters don't prevent the count from ever hitting 0. > I think this #3 is what Java might be doing, and is described here: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > "3.3. The Generation Count Solution" > > > also: > http://www.cs.wustl.edu/~schmidt/win32-cv-1.html > 3.2. The SetEvent Solution > Evaluating the SetEvent Solution > Incorrectness -- > > > Is that incorrect case really necessarily incorrect? > It seems unfair, since first waiter should be first woken, but..? > > > Am I missing something? A lot? > > > - Jay > > > --Apple-Mail-96--321618545 > Content-Type: text/html; > charset=US-ASCII > Content-Transfer-Encoding: quoted-printable > > space; = > -webkit-line-break: after-white-space; ">
apple-content-edited=3D"true"> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- > family: = > Helvetica; font-size: 12px; font-style: normal; font-variant: > normal; = > font-weight: normal; letter-spacing: normal; line-height: normal; = > orphans: 2; text-align: auto; text-indent: 0px; text-transform: > none; = > white-space: normal; widows: 2; word-spacing: 0px; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- > adjust: = > auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = > after-white-space; "> style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = > -webkit-line-break: after-white-space; "> span" = > style=3D"border-collapse: separate; -webkit-border-horizontal- > spacing: = > 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = > font-family: Helvetica; font-size: 12px; font-style: normal; = > font-variant: normal; font-weight: normal; letter-spacing: normal; = > line-height: normal; -webkit-text-decorations-in-effect: none; = > text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: > none; = > orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; > "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; "> class=3D"Apple-style-span" style=3D"border-collapse: separate; = > -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- > spacing: = > 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = > font-style: normal; font-variant: normal; font-weight: normal; = > letter-spacing: normal; line-height: normal; = > -webkit-text-decorations-in-effect: none; text-indent: 0px; = > -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = > white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">In = > general, it is OK in M3 to associate multiple conditions with the > same = > mutex.  But not vice versa.
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill > Sans'"> class=3D"Apple-style-span" style=3D"font-size: = > medium;">
span>
On 8 Oct > 2009, = > at 09:32, Jay K wrote:

class=3D"Apple-interchange-newline">
class=3D"Apple-style-span" style=3D"border-collapse: separate; > color: = > rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: = > normal; font-variant: normal; font-weight: normal; letter-spacing: = > normal; line-height: normal; orphans: 2; text-align: auto; text- > indent: = > 0px; text-transform: none; white-space: normal; widows: 2; word- > spacing: = > 0px; -webkit-border-horizontal-spacing: 0px; = > -webkit-border-vertical-spacing: 0px; = > -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = > auto; -webkit-text-stroke-width: 0px; ">
style=3D"font-size: 10pt; font-family: Verdana; ">condition = > variables/win32
 

So..one way I think about condition = > variables
is that you want to be woken when someone > else
leaves = > the mutex that guards the data that you are dealing with.
You > want to = > know when another thread modifies the data.
(If you have a = > reader/writer lock, you only want to be
woken when someone exits > a = > write.)
 

Now, if you consider a producer/consumer = > queue.
There are two interesting occurences.
Transitions from = > empty to non-empty
and transitions from full to non-full = > (optionally,
if it is fixed size).
 

Consumers > wait = > for empty to non-empty.
Consumers signal full to = > non-full.
Producers wait for full to non-full.
Producers > signal = > non-empty to empty.
 

So, in this case, one mutex is = > likely used with with two condition = > variables.
 

But, what if we take a simplifying = > deoptimization and assume that a condition
variable is only ever = > associated with one mutex?
Anyone existing that mutex wakes up > anyone = > waiting on any condition associated with it?
Like, a condition = > variable I think becomes stateless and everything is
about the = > mutex?
 
 
What is the = > downside?
 

Condition variables are allowed to have = > spurious wakeups.
This would "just" increase them. Too = > much?
 

So, therefore, what would be wrong with the = > following design?
 a mutex contains an event class=3D"Apple-converted-space"> 
 and a number > of = > waiters, zero or non-zero class=3D"Apple-converted-space"> 
 if a mutex is = > exiting with a non-zero number of waiters, signal the = > event
 

To handle Signal vs. Broadcast
method = > 1:
 the number of waiters might be interlocked
 the = > woken would decrement it
 if it isn't zero, signal the event = > again
 

method 2:
 the number of waiters is > both = > an integer and a semaphore
 and the lock exiter raises the = > semaphore by the the integer

 
method 3:
 it > is = > not an auto-reset event and there is a count
  and when the = > count goes to 0, reset the event
 I think in this case you > have = > to maintain a "wait generation" class=3D"Apple-converted-space"> 
 so that new = > waiters don't prevent the count from ever hitting 0.
 I > think = > this #3 is what Java might be doing, and is described here:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation > Count = > Solution"

 
also:
href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= > stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = > Solution
Evaluating the SetEvent Solution
Incorrectness -- > class=3D"Apple-converted-space"> 
 

Is > that = > incorrect case really necessarily incorrect?
It seems unfair, > since = > first waiter should be first woken, but..?

 
Am I > missing = > something? A lot?
 

 - = > Jay

= > > --Apple-Mail-96--321618545-- > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Tue Oct 20 23:05:52 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Tue, 20 Oct 2009 17:05:52 -0400 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> Message-ID: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Should we not also consider fixing any problems in the existing Win32 threading? That paper does give a very straightforward recipe for building Moulda-3 style mutex/condition semantics using semaphores, which Windows does provide. On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > I will read the paper, thanks. > > The java code demonstrates I believe some important applicable > methods. I hope to have a "new" ThreadWin32.m3 "soon". In > particular, no per-thread event, no wait lists, and counter to help > matching up condition waits and signals. And no giant lock. And stil > an efficient mutex with no kernel involvement unless there is > contention, could/might use win32 criticalsection with little extra > to avoid recursion, or could use something smaller. And no use of > SignalObjectAndWait whose documentation recently changed to remove > the atomicity claim! > > - Jay (phone) > > On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" > wrote: > >> Jay: >> >> I think we would need to delve deep into the implementation to be >> able to answer all your questions precisely. >> >> I've attached a short paper by Andrew Birrell "Implementing >> Condition Variables with Semaphores" that you may find >> interesting / enlightening. >> >> My concern about using multiple mutex with same condition lies in >> the queuing operations. My recollection is that I've always >> associated only one mutex with a condition variable, but that you >> can have multiple conditions associated with the same mutex. >> >> I will go back and re-read Nelson again--its been a few years. >> >> Regards, >> Randy Coleburn >> >> >>> Jay K 10/18/2009 4:16 AM >>> >> I still have questions here. >> >> 1) >> Page 93 of the Nelson book: >> A monitor consists of some data, a mutex, and zero or more condition >> variables. A particular condition variable is always used >> in conjunction with the same mutex and its data. >> >> Doesn't this contradict the point made here? >> Does a condition variable always map to the same mutex >> or not? >> >> Or is this merely describing a typical usage pattern that is >> a subset of what interface Thread allows? >> >> >> 2) >> Can Wait only be satisfied by Signal/Broadcast, >> or also just via UnlockMutex? >> >> >> Depending on the answer to these questions, >> it seems you can largely merge mutex and condition variable. >> >> >> Condition variable is basically waiting for a >> thread to exit a mutex. >> Which is very very similar to LockMutex, except >> that it doesn't want to take the mutex in the uncontended >> case, it actually wants to wait for another thread >> to both acquire and release the mutex. >> >> >> I suspect I'm wrong on both of these. >> That condition variable really can use multiple mutexes. >> That exiting a mutex has no obligation to wake condition variables, >> though it might be in good faith to do so...er..if it is >> in good faith to not require programmer to use Signal/Broadcast. >> >> >> Thanks, >> - Jay >> >> >> >> From: jay.krell at cornell.edu >> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 19:13:03 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> That seems a little strange to me but I guess I'll have to keep it >> in mind. >> >> - Jay >> >> >> From: hosking at cs.purdue.edu >> To: mika at async.async.caltech.edu >> Date: Thu, 8 Oct 2009 11:00:36 -0400 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] condition variables/win32 >> >> Sorry, yes, you are right of course! The Modula-3 spec (and the >> current pthreads-based implementation as also the win32 >> implementation I expect) do allow a condition variable being >> mediated by different mutexes. My comment was clouded by my >> recollection from the pthreads spec that for pthread mutex/cv >> behavior for other than 1 mutex per cv is undefined. This >> confusion may have been the source of prior bugs in the pthreads >> threading implementation, but those bugs are gone now. We support >> the M3 spec properly. >> >> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >> >> Why can't you use the same condition variable with different mutexes? >> >> This is dynamic, up to the M3 programmer, no? >> >> Tony Hosking writes: >> >> --Apple-Mail-96--321618545 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> In general, it is OK in M3 to associate multiple conditions with the >> same mutex. But not vice versa. >> >> On 8 Oct 2009, at 09:32, Jay K wrote: >> >> condition variables/win32 >> >> >> So..one way I think about condition variables >> is that you want to be woken when someone else >> leaves the mutex that guards the data that you are dealing with. >> You want to know when another thread modifies the data. >> (If you have a reader/writer lock, you only want to be >> woken when someone exits a write.) >> >> >> Now, if you consider a producer/consumer queue. >> There are two interesting occurences. >> Transitions from empty to non-empty >> and transitions from full to non-full (optionally, >> if it is fixed size). >> >> >> Consumers wait for empty to non-empty. >> Consumers signal full to non-full. >> Producers wait for full to non-full. >> Producers signal non-empty to empty. >> >> >> So, in this case, one mutex is likely used with with two condition >> variables. >> >> >> But, what if we take a simplifying deoptimization and assume that a >> condition >> variable is only ever associated with one mutex? >> Anyone existing that mutex wakes up anyone waiting on any condition >> associated with it? >> Like, a condition variable I think becomes stateless and everything >> is >> about the mutex? >> >> >> What is the downside? >> >> >> Condition variables are allowed to have spurious wakeups. >> This would "just" increase them. Too much? >> >> >> So, therefore, what would be wrong with the following design? >> a mutex contains an event >> and a number of waiters, zero or non-zero >> if a mutex is exiting with a non-zero number of waiters, signal the >> event >> >> >> To handle Signal vs. Broadcast >> method 1: >> the number of waiters might be interlocked >> the woken would decrement it >> if it isn't zero, signal the event again >> >> >> method 2: >> the number of waiters is both an integer and a semaphore >> and the lock exiter raises the semaphore by the the integer >> >> >> method 3: >> it is not an auto-reset event and there is a count >> and when the count goes to 0, reset the event >> I think in this case you have to maintain a "wait generation" >> so that new waiters don't prevent the count from ever hitting 0. >> I think this #3 is what Java might be doing, and is described here: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> "3.3. The Generation Count Solution" >> >> >> also: >> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >> 3.2. The SetEvent Solution >> Evaluating the SetEvent Solution >> Incorrectness -- >> >> >> Is that incorrect case really necessarily incorrect? >> It seems unfair, since first waiter should be first woken, but..? >> >> >> Am I missing something? A lot? >> >> >> - Jay >> >> >> --Apple-Mail-96--321618545 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">In = >> general, it is OK in M3 to associate multiple conditions with the >> same = >> mutex.  But not vice versa.
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">> class=3D"Apple-style-span" style=3D"font-size: = >> medium;">
> span>>
On 8 Oct >> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= >> >> --Apple-Mail-96--321618545-- >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:04:27 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:04:27 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Also removing our giant lock would be good either way, if possible. - Jay (phone) On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > Something doesn't add up. I'll have to reread. The paper I think > assumes one mutex per condition, also clearly is talking about "our > library". I'll need to compare the paper and the library. Could be > the paper is wrong. A lot of literature here depends on atomic > SignalAndWait but the docs just changed and no longer claim atomicity. > > - Jay (phone) > > On Oct 20, 2009, at 2:05 PM, Tony Hosking > wrote: > >> Should we not also consider fixing any problems in the existing >> Win32 threading? That paper does give a very straightforward >> recipe for building Moulda-3 style mutex/condition semantics using >> semaphores, which Windows does provide. >> >> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >> >>> I will read the paper, thanks. >>> >>> The java code demonstrates I believe some important applicable >>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>> particular, no per-thread event, no wait lists, and counter to >>> help matching up condition waits and signals. And no giant lock. >>> And stil an efficient mutex with no kernel involvement unless >>> there is contention, could/might use win32 criticalsection with >>> little extra to avoid recursion, or could use something smaller. >>> And no use of SignalObjectAndWait whose documentation recently >>> changed to remove the atomicity claim! >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>> wrote: >>> >>>> Jay: >>>> >>>> I think we would need to delve deep into the implementation to be >>>> able to answer all your questions precisely. >>>> >>>> I've attached a short paper by Andrew Birrell "Implementing >>>> Condition Variables with Semaphores" that you may find >>>> interesting / enlightening. >>>> >>>> My concern about using multiple mutex with same condition lies in >>>> the queuing operations. My recollection is that I've always >>>> associated only one mutex with a condition variable, but that you >>>> can have multiple conditions associated with the same mutex. >>>> >>>> I will go back and re-read Nelson again--its been a few years. >>>> >>>> Regards, >>>> Randy Coleburn >>>> >>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>> I still have questions here. >>>> >>>> 1) >>>> Page 93 of the Nelson book: >>>> A monitor consists of some data, a mutex, and zero or more >>>> condition >>>> variables. A particular condition variable is always used >>>> in conjunction with the same mutex and its data. >>>> >>>> Doesn't this contradict the point made here? >>>> Does a condition variable always map to the same mutex >>>> or not? >>>> >>>> Or is this merely describing a typical usage pattern that is >>>> a subset of what interface Thread allows? >>>> >>>> >>>> 2) >>>> Can Wait only be satisfied by Signal/Broadcast, >>>> or also just via UnlockMutex? >>>> >>>> >>>> Depending on the answer to these questions, >>>> it seems you can largely merge mutex and condition variable. >>>> >>>> >>>> Condition variable is basically waiting for a >>>> thread to exit a mutex. >>>> Which is very very similar to LockMutex, except >>>> that it doesn't want to take the mutex in the uncontended >>>> case, it actually wants to wait for another thread >>>> to both acquire and release the mutex. >>>> >>>> >>>> I suspect I'm wrong on both of these. >>>> That condition variable really can use multiple mutexes. >>>> That exiting a mutex has no obligation to wake condition variables, >>>> though it might be in good faith to do so...er..if it is >>>> in good faith to not require programmer to use Signal/Broadcast. >>>> >>>> >>>> Thanks, >>>> - Jay >>>> >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> That seems a little strange to me but I guess I'll have to keep >>>> it in mind. >>>> >>>> - Jay >>>> >>>> >>>> From: hosking at cs.purdue.edu >>>> To: mika at async.async.caltech.edu >>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] condition variables/win32 >>>> >>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>> current pthreads-based implementation as also the win32 >>>> implementation I expect) do allow a condition variable being >>>> mediated by different mutexes. My comment was clouded by my >>>> recollection from the pthreads spec that for pthread mutex/cv >>>> behavior for other than 1 mutex per cv is undefined. This >>>> confusion may have been the source of prior bugs in the pthreads >>>> threading implementation, but those bugs are gone now. We >>>> support the M3 spec properly. >>>> >>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>> >>>> Why can't you use the same condition variable with different >>>> mutexes? >>>> >>>> This is dynamic, up to the M3 programmer, no? >>>> >>>> Tony Hosking writes: >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> In general, it is OK in M3 to associate multiple conditions with >>>> the >>>> same mutex. But not vice versa. >>>> >>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>> >>>> condition variables/win32 >>>> >>>> >>>> So..one way I think about condition variables >>>> is that you want to be woken when someone else >>>> leaves the mutex that guards the data that you are dealing with. >>>> You want to know when another thread modifies the data. >>>> (If you have a reader/writer lock, you only want to be >>>> woken when someone exits a write.) >>>> >>>> >>>> Now, if you consider a producer/consumer queue. >>>> There are two interesting occurences. >>>> Transitions from empty to non-empty >>>> and transitions from full to non-full (optionally, >>>> if it is fixed size). >>>> >>>> >>>> Consumers wait for empty to non-empty. >>>> Consumers signal full to non-full. >>>> Producers wait for full to non-full. >>>> Producers signal non-empty to empty. >>>> >>>> >>>> So, in this case, one mutex is likely used with with two condition >>>> variables. >>>> >>>> >>>> But, what if we take a simplifying deoptimization and assume that a >>>> condition >>>> variable is only ever associated with one mutex? >>>> Anyone existing that mutex wakes up anyone waiting on any condition >>>> associated with it? >>>> Like, a condition variable I think becomes stateless and >>>> everything is >>>> about the mutex? >>>> >>>> >>>> What is the downside? >>>> >>>> >>>> Condition variables are allowed to have spurious wakeups. >>>> This would "just" increase them. Too much? >>>> >>>> >>>> So, therefore, what would be wrong with the following design? >>>> a mutex contains an event >>>> and a number of waiters, zero or non-zero >>>> if a mutex is exiting with a non-zero number of waiters, signal the >>>> event >>>> >>>> >>>> To handle Signal vs. Broadcast >>>> method 1: >>>> the number of waiters might be interlocked >>>> the woken would decrement it >>>> if it isn't zero, signal the event again >>>> >>>> >>>> method 2: >>>> the number of waiters is both an integer and a semaphore >>>> and the lock exiter raises the semaphore by the the integer >>>> >>>> >>>> method 3: >>>> it is not an auto-reset event and there is a count >>>> and when the count goes to 0, reset the event >>>> I think in this case you have to maintain a "wait generation" >>>> so that new waiters don't prevent the count from ever hitting 0. >>>> I think this #3 is what Java might be doing, and is described here: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> "3.3. The Generation Count Solution" >>>> >>>> >>>> also: >>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>> 3.2. The SetEvent Solution >>>> Evaluating the SetEvent Solution >>>> Incorrectness -- >>>> >>>> >>>> Is that incorrect case really necessarily incorrect? >>>> It seems unfair, since first waiter should be first woken, but..? >>>> >>>> >>>> Am I missing something? A lot? >>>> >>>> >>>> - Jay >>>> >>>> >>>> --Apple-Mail-96--321618545 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style-span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">In = >>>> general, it is OK in M3 to associate multiple conditions with the >>>> same = >>>> mutex.  But not vice versa.
>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">>>> class=3D"Apple-style-span" style=3D"font-size: = >>>> medium;">
>>> span>>>>
On 8 Oct >>>> 2009, = >>>> at 09:32, Jay K wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0px; ">
>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>> variables/win32
 

So..one way I think about >>>> condition = >>>> variables
is that you want to be woken when someone >>>> else
leaves = >>>> the mutex that guards the data that you are dealing with.
You >>>> want to = >>>> know when another thread modifies the data.
(If you have a = >>>> reader/writer lock, you only want to be
woken when someone >>>> exits a = >>>> write.)
 

Now, if you consider a producer/consumer = >>>> queue.
There are two interesting occurences.
Transitions >>>> from = >>>> empty to non-empty
and transitions from full to non-full = >>>> (optionally,
if it is fixed size).
 

Consumers >>>> wait = >>>> for empty to non-empty.
Consumers signal full to = >>>> non-full.
Producers wait for full to non-full.
Producers >>>> signal = >>>> non-empty to empty.
 

So, in this case, one mutex >>>> is = >>>> likely used with with two condition = >>>> variables.
 

But, what if we take a simplifying = >>>> deoptimization and assume that a condition
variable is only >>>> ever = >>>> associated with one mutex?
Anyone existing that mutex wakes up >>>> anyone = >>>> waiting on any condition associated with it?
Like, a condition = >>>> variable I think becomes stateless and everything is
about the = >>>> mutex?
 
 
What is the = >>>> downside?
 

Condition variables are allowed to >>>> have = >>>> spurious wakeups.
This would "just" increase them. Too = >>>> much?
 

So, therefore, what would be wrong with >>>> the = >>>> following design?
 a mutex contains an event>>> class=3D"Apple-converted-space"> 
 and a >>>> number of = >>>> waiters, zero or non-zero>>> class=3D"Apple-converted-space"> 
 if a mutex >>>> is = >>>> exiting with a non-zero number of waiters, signal the = >>>> event
 

To handle Signal vs. Broadcast
method = >>>> 1:
 the number of waiters might be >>>> interlocked
 the = >>>> woken would decrement it
 if it isn't zero, signal the >>>> event = >>>> again
 

method 2:
 the number of waiters >>>> is both = >>>> an integer and a semaphore
 and the lock exiter raises >>>> the = >>>> semaphore by the the integer

 
method >>>> 3:
 it is = >>>> not an auto-reset event and there is a count
  and when >>>> the = >>>> count goes to 0, reset the event
 I think in this case >>>> you have = >>>> to maintain a "wait generation">>> class=3D"Apple-converted-space"> 
 so that >>>> new = >>>> waiters don't prevent the count from ever hitting 0.
 I >>>> think = >>>> this #3 is what Java might be doing, and is described here:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>> Generation Count = >>>> Solution"

 
also:
>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>> >>> class=3D"Apple-converted-space"> 
 

Is >>>> that = >>>> incorrect case really necessarily incorrect?
It seems unfair, >>>> since = >>>> first waiter should be first woken, but..?

 
Am I >>>> missing = >>>> something? A lot?
 

 - = >>>> Jay

= >>>> >>>> --Apple-Mail-96--321618545-- >>>> >>>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 02:58:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 17:58:28 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> Message-ID: Something doesn't add up. I'll have to reread. The paper I think assumes one mutex per condition, also clearly is talking about "our library". I'll need to compare the paper and the library. Could be the paper is wrong. A lot of literature here depends on atomic SignalAndWait but the docs just changed and no longer claim atomicity. - Jay (phone) On Oct 20, 2009, at 2:05 PM, Tony Hosking wrote: > Should we not also consider fixing any problems in the existing > Win32 threading? That paper does give a very straightforward recipe > for building Moulda-3 style mutex/condition semantics using > semaphores, which Windows does provide. > > On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: > >> I will read the paper, thanks. >> >> The java code demonstrates I believe some important applicable >> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >> particular, no per-thread event, no wait lists, and counter to help >> matching up condition waits and signals. And no giant lock. And >> stil an efficient mutex with no kernel involvement unless there is >> contention, could/might use win32 criticalsection with little extra >> to avoid recursion, or could use something smaller. And no use of >> SignalObjectAndWait whose documentation recently changed to remove >> the atomicity claim! >> >> - Jay (phone) >> >> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >> wrote: >> >>> Jay: >>> >>> I think we would need to delve deep into the implementation to be >>> able to answer all your questions precisely. >>> >>> I've attached a short paper by Andrew Birrell "Implementing >>> Condition Variables with Semaphores" that you may find >>> interesting / enlightening. >>> >>> My concern about using multiple mutex with same condition lies in >>> the queuing operations. My recollection is that I've always >>> associated only one mutex with a condition variable, but that you >>> can have multiple conditions associated with the same mutex. >>> >>> I will go back and re-read Nelson again--its been a few years. >>> >>> Regards, >>> Randy Coleburn >>> >>> >>> Jay K 10/18/2009 4:16 AM >>> >>> I still have questions here. >>> >>> 1) >>> Page 93 of the Nelson book: >>> A monitor consists of some data, a mutex, and zero or more condition >>> variables. A particular condition variable is always used >>> in conjunction with the same mutex and its data. >>> >>> Doesn't this contradict the point made here? >>> Does a condition variable always map to the same mutex >>> or not? >>> >>> Or is this merely describing a typical usage pattern that is >>> a subset of what interface Thread allows? >>> >>> >>> 2) >>> Can Wait only be satisfied by Signal/Broadcast, >>> or also just via UnlockMutex? >>> >>> >>> Depending on the answer to these questions, >>> it seems you can largely merge mutex and condition variable. >>> >>> >>> Condition variable is basically waiting for a >>> thread to exit a mutex. >>> Which is very very similar to LockMutex, except >>> that it doesn't want to take the mutex in the uncontended >>> case, it actually wants to wait for another thread >>> to both acquire and release the mutex. >>> >>> >>> I suspect I'm wrong on both of these. >>> That condition variable really can use multiple mutexes. >>> That exiting a mutex has no obligation to wake condition variables, >>> though it might be in good faith to do so...er..if it is >>> in good faith to not require programmer to use Signal/Broadcast. >>> >>> >>> Thanks, >>> - Jay >>> >>> >>> >>> From: jay.krell at cornell.edu >>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> That seems a little strange to me but I guess I'll have to keep it >>> in mind. >>> >>> - Jay >>> >>> >>> From: hosking at cs.purdue.edu >>> To: mika at async.async.caltech.edu >>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] condition variables/win32 >>> >>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>> current pthreads-based implementation as also the win32 >>> implementation I expect) do allow a condition variable being >>> mediated by different mutexes. My comment was clouded by my >>> recollection from the pthreads spec that for pthread mutex/cv >>> behavior for other than 1 mutex per cv is undefined. This >>> confusion may have been the source of prior bugs in the pthreads >>> threading implementation, but those bugs are gone now. We support >>> the M3 spec properly. >>> >>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>> >>> Why can't you use the same condition variable with different >>> mutexes? >>> >>> This is dynamic, up to the M3 programmer, no? >>> >>> Tony Hosking writes: >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> In general, it is OK in M3 to associate multiple conditions with the >>> same mutex. But not vice versa. >>> >>> On 8 Oct 2009, at 09:32, Jay K wrote: >>> >>> condition variables/win32 >>> >>> >>> So..one way I think about condition variables >>> is that you want to be woken when someone else >>> leaves the mutex that guards the data that you are dealing with. >>> You want to know when another thread modifies the data. >>> (If you have a reader/writer lock, you only want to be >>> woken when someone exits a write.) >>> >>> >>> Now, if you consider a producer/consumer queue. >>> There are two interesting occurences. >>> Transitions from empty to non-empty >>> and transitions from full to non-full (optionally, >>> if it is fixed size). >>> >>> >>> Consumers wait for empty to non-empty. >>> Consumers signal full to non-full. >>> Producers wait for full to non-full. >>> Producers signal non-empty to empty. >>> >>> >>> So, in this case, one mutex is likely used with with two condition >>> variables. >>> >>> >>> But, what if we take a simplifying deoptimization and assume that a >>> condition >>> variable is only ever associated with one mutex? >>> Anyone existing that mutex wakes up anyone waiting on any condition >>> associated with it? >>> Like, a condition variable I think becomes stateless and >>> everything is >>> about the mutex? >>> >>> >>> What is the downside? >>> >>> >>> Condition variables are allowed to have spurious wakeups. >>> This would "just" increase them. Too much? >>> >>> >>> So, therefore, what would be wrong with the following design? >>> a mutex contains an event >>> and a number of waiters, zero or non-zero >>> if a mutex is exiting with a non-zero number of waiters, signal the >>> event >>> >>> >>> To handle Signal vs. Broadcast >>> method 1: >>> the number of waiters might be interlocked >>> the woken would decrement it >>> if it isn't zero, signal the event again >>> >>> >>> method 2: >>> the number of waiters is both an integer and a semaphore >>> and the lock exiter raises the semaphore by the the integer >>> >>> >>> method 3: >>> it is not an auto-reset event and there is a count >>> and when the count goes to 0, reset the event >>> I think in this case you have to maintain a "wait generation" >>> so that new waiters don't prevent the count from ever hitting 0. >>> I think this #3 is what Java might be doing, and is described here: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> "3.3. The Generation Count Solution" >>> >>> >>> also: >>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>> 3.2. The SetEvent Solution >>> Evaluating the SetEvent Solution >>> Incorrectness -- >>> >>> >>> Is that incorrect case really necessarily incorrect? >>> It seems unfair, since first waiter should be first woken, but..? >>> >>> >>> Am I missing something? A lot? >>> >>> >>> - Jay >>> >>> >>> --Apple-Mail-96--321618545 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> style-span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">In = >>> general, it is OK in M3 to associate multiple conditions with the >>> same = >>> mutex.  But not vice versa.
>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">>> class=3D"Apple-style-span" style=3D"font-size: = >>> medium;">
>> span>>>
On 8 Oct >>> 2009, = >>> at 09:32, Jay K wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>> style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0px; ">
>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>> variables/win32
 

So..one way I think about >>> condition = >>> variables
is that you want to be woken when someone >>> else
leaves = >>> the mutex that guards the data that you are dealing with.
You >>> want to = >>> know when another thread modifies the data.
(If you have a = >>> reader/writer lock, you only want to be
woken when someone >>> exits a = >>> write.)
 

Now, if you consider a producer/consumer = >>> queue.
There are two interesting occurences.
Transitions >>> from = >>> empty to non-empty
and transitions from full to non-full = >>> (optionally,
if it is fixed size).
 

Consumers >>> wait = >>> for empty to non-empty.
Consumers signal full to = >>> non-full.
Producers wait for full to non-full.
Producers >>> signal = >>> non-empty to empty.
 

So, in this case, one mutex >>> is = >>> likely used with with two condition = >>> variables.
 

But, what if we take a simplifying = >>> deoptimization and assume that a condition
variable is only >>> ever = >>> associated with one mutex?
Anyone existing that mutex wakes up >>> anyone = >>> waiting on any condition associated with it?
Like, a condition = >>> variable I think becomes stateless and everything is
about the = >>> mutex?
 
 
What is the = >>> downside?
 

Condition variables are allowed to have = >>> spurious wakeups.
This would "just" increase them. Too = >>> much?
 

So, therefore, what would be wrong with the = >>> following design?
 a mutex contains an event>> class=3D"Apple-converted-space"> 
 and a >>> number of = >>> waiters, zero or non-zero>> class=3D"Apple-converted-space"> 
 if a mutex >>> is = >>> exiting with a non-zero number of waiters, signal the = >>> event
 

To handle Signal vs. Broadcast
method = >>> 1:
 the number of waiters might be >>> interlocked
 the = >>> woken would decrement it
 if it isn't zero, signal the >>> event = >>> again
 

method 2:
 the number of waiters is >>> both = >>> an integer and a semaphore
 and the lock exiter raises the = >>> semaphore by the the integer

 
method >>> 3:
 it is = >>> not an auto-reset event and there is a count
  and when >>> the = >>> count goes to 0, reset the event
 I think in this case you >>> have = >>> to maintain a "wait generation">> class=3D"Apple-converted-space"> 
 so that new = >>> waiters don't prevent the count from ever hitting 0.
 I >>> think = >>> this #3 is what Java might be doing, and is described here:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >>> Count = >>> Solution"

 
also:
>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>> >> class=3D"Apple-converted-space"> 
 

Is >>> that = >>> incorrect case really necessarily incorrect?
It seems unfair, >>> since = >>> first waiter should be first woken, but..?

 
Am I >>> missing = >>> something? A lot?
 

 - = >>> Jay

= >>> >>> --Apple-Mail-96--321618545-- >>> >>> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 03:19:48 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 18:19:48 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: Also it may be possible/easy to remove the need to create the thread in Modula-3, though dllmain could also address that. - Jay (phone) On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > Also removing our giant lock would be good either way, if possible. > > - Jay (phone) > > On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: > >> Something doesn't add up. I'll have to reread. The paper I think >> assumes one mutex per condition, also clearly is talking about "our >> library". I'll need to compare the paper and the library. Could be >> the paper is wrong. A lot of literature here depends on atomic >> SignalAndWait but the docs just changed and no longer claim >> atomicity. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 2:05 PM, Tony Hosking >> wrote: >> >>> Should we not also consider fixing any problems in the existing >>> Win32 threading? That paper does give a very straightforward >>> recipe for building Moulda-3 style mutex/condition semantics using >>> semaphores, which Windows does provide. >>> >>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>> >>>> I will read the paper, thanks. >>>> >>>> The java code demonstrates I believe some important applicable >>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>> particular, no per-thread event, no wait lists, and counter to >>>> help matching up condition waits and signals. And no giant lock. >>>> And stil an efficient mutex with no kernel involvement unless >>>> there is contention, could/might use win32 criticalsection with >>>> little extra to avoid recursion, or could use something smaller. >>>> And no use of SignalObjectAndWait whose documentation recently >>>> changed to remove the atomicity claim! >>>> >>>> - Jay (phone) >>>> >>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> wrote: >>>> >>>>> Jay: >>>>> >>>>> I think we would need to delve deep into the implementation to >>>>> be able to answer all your questions precisely. >>>>> >>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>> Condition Variables with Semaphores" that you may find >>>>> interesting / enlightening. >>>>> >>>>> My concern about using multiple mutex with same condition lies >>>>> in the queuing operations. My recollection is that I've always >>>>> associated only one mutex with a condition variable, but that >>>>> you can have multiple conditions associated with the same mutex. >>>>> >>>>> I will go back and re-read Nelson again--its been a few years. >>>>> >>>>> Regards, >>>>> Randy Coleburn >>>>> >>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>> I still have questions here. >>>>> >>>>> 1) >>>>> Page 93 of the Nelson book: >>>>> A monitor consists of some data, a mutex, and zero or more >>>>> condition >>>>> variables. A particular condition variable is always used >>>>> in conjunction with the same mutex and its data. >>>>> >>>>> Doesn't this contradict the point made here? >>>>> Does a condition variable always map to the same mutex >>>>> or not? >>>>> >>>>> Or is this merely describing a typical usage pattern that is >>>>> a subset of what interface Thread allows? >>>>> >>>>> >>>>> 2) >>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>> or also just via UnlockMutex? >>>>> >>>>> >>>>> Depending on the answer to these questions, >>>>> it seems you can largely merge mutex and condition variable. >>>>> >>>>> >>>>> Condition variable is basically waiting for a >>>>> thread to exit a mutex. >>>>> Which is very very similar to LockMutex, except >>>>> that it doesn't want to take the mutex in the uncontended >>>>> case, it actually wants to wait for another thread >>>>> to both acquire and release the mutex. >>>>> >>>>> >>>>> I suspect I'm wrong on both of these. >>>>> That condition variable really can use multiple mutexes. >>>>> That exiting a mutex has no obligation to wake condition >>>>> variables, >>>>> though it might be in good faith to do so...er..if it is >>>>> in good faith to not require programmer to use Signal/Broadcast. >>>>> >>>>> >>>>> Thanks, >>>>> - Jay >>>>> >>>>> >>>>> >>>>> From: jay.krell at cornell.edu >>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> That seems a little strange to me but I guess I'll have to keep >>>>> it in mind. >>>>> >>>>> - Jay >>>>> >>>>> >>>>> From: hosking at cs.purdue.edu >>>>> To: mika at async.async.caltech.edu >>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>> CC: m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] condition variables/win32 >>>>> >>>>> Sorry, yes, you are right of course! The Modula-3 spec (and the >>>>> current pthreads-based implementation as also the win32 >>>>> implementation I expect) do allow a condition variable being >>>>> mediated by different mutexes. My comment was clouded by my >>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>> behavior for other than 1 mutex per cv is undefined. This >>>>> confusion may have been the source of prior bugs in the pthreads >>>>> threading implementation, but those bugs are gone now. We >>>>> support the M3 spec properly. >>>>> >>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>> >>>>> Why can't you use the same condition variable with different >>>>> mutexes? >>>>> >>>>> This is dynamic, up to the M3 programmer, no? >>>>> >>>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> In general, it is OK in M3 to associate multiple conditions with >>>>> the >>>>> same mutex. But not vice versa. >>>>> >>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>> >>>>> condition variables/win32 >>>>> >>>>> >>>>> So..one way I think about condition variables >>>>> is that you want to be woken when someone else >>>>> leaves the mutex that guards the data that you are dealing with. >>>>> You want to know when another thread modifies the data. >>>>> (If you have a reader/writer lock, you only want to be >>>>> woken when someone exits a write.) >>>>> >>>>> >>>>> Now, if you consider a producer/consumer queue. >>>>> There are two interesting occurences. >>>>> Transitions from empty to non-empty >>>>> and transitions from full to non-full (optionally, >>>>> if it is fixed size). >>>>> >>>>> >>>>> Consumers wait for empty to non-empty. >>>>> Consumers signal full to non-full. >>>>> Producers wait for full to non-full. >>>>> Producers signal non-empty to empty. >>>>> >>>>> >>>>> So, in this case, one mutex is likely used with with two condition >>>>> variables. >>>>> >>>>> >>>>> But, what if we take a simplifying deoptimization and assume >>>>> that a >>>>> condition >>>>> variable is only ever associated with one mutex? >>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>> condition >>>>> associated with it? >>>>> Like, a condition variable I think becomes stateless and >>>>> everything is >>>>> about the mutex? >>>>> >>>>> >>>>> What is the downside? >>>>> >>>>> >>>>> Condition variables are allowed to have spurious wakeups. >>>>> This would "just" increase them. Too much? >>>>> >>>>> >>>>> So, therefore, what would be wrong with the following design? >>>>> a mutex contains an event >>>>> and a number of waiters, zero or non-zero >>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>> the >>>>> event >>>>> >>>>> >>>>> To handle Signal vs. Broadcast >>>>> method 1: >>>>> the number of waiters might be interlocked >>>>> the woken would decrement it >>>>> if it isn't zero, signal the event again >>>>> >>>>> >>>>> method 2: >>>>> the number of waiters is both an integer and a semaphore >>>>> and the lock exiter raises the semaphore by the the integer >>>>> >>>>> >>>>> method 3: >>>>> it is not an auto-reset event and there is a count >>>>> and when the count goes to 0, reset the event >>>>> I think in this case you have to maintain a "wait generation" >>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>> I think this #3 is what Java might be doing, and is described >>>>> here: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> "3.3. The Generation Count Solution" >>>>> >>>>> >>>>> also: >>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>> 3.2. The SetEvent Solution >>>>> Evaluating the SetEvent Solution >>>>> Incorrectness -- >>>>> >>>>> >>>>> Is that incorrect case really necessarily incorrect? >>>>> It seems unfair, since first waiter should be first woken, but..? >>>>> >>>>> >>>>> Am I missing something? A lot? >>>>> >>>>> >>>>> - Jay >>>>> >>>>> >>>>> --Apple-Mail-96--321618545 >>>>> Content-Type: text/html; >>>>> charset=US-ASCII >>>>> Content-Transfer-Encoding: quoted-printable >>>>> >>>>> >>>> space; = >>>>> -webkit-line-break: after-white-space; ">
>>>> apple-content-edited=3D"true">>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>> family: = >>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>> normal; = >>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>> normal; = >>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>> none; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0; ">
>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>> after-white-space; ">>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">
>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>> -webkit-line-break: after-white-space; ">>>>> style-span" = >>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>> spacing: = >>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>> normal; = >>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>> transform: none; = >>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>> ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>> spacing: = >>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>> 12px; = >>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>> letter-spacing: normal; line-height: normal; = >>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>> 2; = >>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">In = >>>>> general, it is OK in M3 to associate multiple conditions with >>>>> the same = >>>>> mutex.  But not vice versa.
>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>> Sans'">>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>> medium;">
>>>> span>>>>>
On 8 Oct >>>>> 2009, = >>>>> at 09:32, Jay K wrote:

>>>> class=3D"Apple-interchange-newline">
>>>> type=3D"cite">>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>> color: = >>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>> style: = >>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>> spacing: = >>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>> indent: = >>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>> spacing: = >>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>> -webkit-border-vertical-spacing: 0px; = >>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>> adjust: = >>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>> variables/win32
 

So..one way I think about >>>>> condition = >>>>> variables
is that you want to be woken when someone >>>>> else
leaves = >>>>> the mutex that guards the data that you are dealing with.
You >>>>> want to = >>>>> know when another thread modifies the data.
(If you have a = >>>>> reader/writer lock, you only want to be
woken when someone >>>>> exits a = >>>>> write.)
 

Now, if you consider a producer/ >>>>> consumer = >>>>> queue.
There are two interesting occurences.
Transitions >>>>> from = >>>>> empty to non-empty
and transitions from full to non-full = >>>>> (optionally,
if it is fixed size).
 

Consumers >>>>> wait = >>>>> for empty to non-empty.
Consumers signal full to = >>>>> non-full.
Producers wait for full to non-full.
Producers >>>>> signal = >>>>> non-empty to empty.
 

So, in this case, one mutex >>>>> is = >>>>> likely used with with two condition = >>>>> variables.
 

But, what if we take a simplifying = >>>>> deoptimization and assume that a condition
variable is only >>>>> ever = >>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>> up anyone = >>>>> waiting on any condition associated with it?
Like, a >>>>> condition = >>>>> variable I think becomes stateless and everything is
about >>>>> the = >>>>> mutex?
 
 
What is the = >>>>> downside?
 

Condition variables are allowed to >>>>> have = >>>>> spurious wakeups.
This would "just" increase them. Too = >>>>> much?
 

So, therefore, what would be wrong with >>>>> the = >>>>> following design?
 a mutex contains an event>>>> class=3D"Apple-converted-space"> 
 and a >>>>> number of = >>>>> waiters, zero or non-zero>>>> class=3D"Apple-converted-space"> 
 if a >>>>> mutex is = >>>>> exiting with a non-zero number of waiters, signal the = >>>>> event
 

To handle Signal vs. Broadcast
method = >>>>> 1:
 the number of waiters might be >>>>> interlocked
 the = >>>>> woken would decrement it
 if it isn't zero, signal the >>>>> event = >>>>> again
 

method 2:
 the number of waiters >>>>> is both = >>>>> an integer and a semaphore
 and the lock exiter raises >>>>> the = >>>>> semaphore by the the integer

 
method >>>>> 3:
 it is = >>>>> not an auto-reset event and there is a count
  and when >>>>> the = >>>>> count goes to 0, reset the event
 I think in this case >>>>> you have = >>>>> to maintain a "wait generation">>>> class=3D"Apple-converted-space"> 
 so that >>>>> new = >>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>> think = >>>>> this #3 is what Java might be doing, and is described >>>>> here:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>> Generation Count = >>>>> Solution"

 
also:
>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>> >>>> class=3D"Apple-converted-space"> >>>> span>
 

Is that = >>>>> incorrect case really necessarily incorrect?
It seems unfair, >>>>> since = >>>>> first waiter should be first woken, but..?

 
Am I >>>>> missing = >>>>> something? A lot?
 

 - = >>>>> Jay

= >>>>> >>>>> --Apple-Mail-96--321618545-- >>>>> >>>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 04:35:37 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 20 Oct 2009 19:35:37 -0700 Subject: [M3devel] condition variables/win32 In-Reply-To: References: <0DBAB722-1455-4BAC-BA2E-4634526584C3@cs.purdue.edu> <4ADDAADA.1E75.00D7.1@scires.com> <76AC92FF-9896-4248-AD3A-25192E85C47D@cs.purdue.edu> <2EFD7A27-D04B-4926-8354-31C8ACACC16A@hotmail.com> Message-ID: While the paper states an assumption of one mutex per condition, it isn't clear that the code depends on it. The paper does not discuss alert but that isn't clearly a problem. Regarding a rewrite, I believe one can use the win32 alert mechanism and owner = GetCurrentThreadId, thereby allowing threads not created by m3 runtime to participate. Will continue investigating. - Jay (phone) On Oct 20, 2009, at 6:19 PM, jay.krell at cornell.edu wrote: > Also it may be possible/easy to remove the need to create the thread > in Modula-3, though dllmain could also address that. > > - Jay (phone) > > On Oct 20, 2009, at 6:04 PM, jayk123 at hotmail.com wrote: > >> Also removing our giant lock would be good either way, if possible. >> >> - Jay (phone) >> >> On Oct 20, 2009, at 5:58 PM, jayk123 at hotmail.com wrote: >> >>> Something doesn't add up. I'll have to reread. The paper I think >>> assumes one mutex per condition, also clearly is talking about >>> "our library". I'll need to compare the paper and the library. >>> Could be the paper is wrong. A lot of literature here depends on >>> atomic SignalAndWait but the docs just changed and no longer claim >>> atomicity. >>> >>> - Jay (phone) >>> >>> On Oct 20, 2009, at 2:05 PM, Tony Hosking >>> wrote: >>> >>>> Should we not also consider fixing any problems in the existing >>>> Win32 threading? That paper does give a very straightforward >>>> recipe for building Moulda-3 style mutex/condition semantics >>>> using semaphores, which Windows does provide. >>>> >>>> On 20 Oct 2009, at 16:26, jay.krell at cornell.edu wrote: >>>> >>>>> I will read the paper, thanks. >>>>> >>>>> The java code demonstrates I believe some important applicable >>>>> methods. I hope to have a "new" ThreadWin32.m3 "soon". In >>>>> particular, no per-thread event, no wait lists, and counter to >>>>> help matching up condition waits and signals. And no giant lock. >>>>> And stil an efficient mutex with no kernel involvement unless >>>>> there is contention, could/might use win32 criticalsection with >>>>> little extra to avoid recursion, or could use something smaller. >>>>> And no use of SignalObjectAndWait whose documentation recently >>>>> changed to remove the atomicity claim! >>>>> >>>>> - Jay (phone) >>>>> >>>>> On Oct 20, 2009, at 9:23 AM, "Randy Coleburn" >>>> > wrote: >>>>> >>>>>> Jay: >>>>>> >>>>>> I think we would need to delve deep into the implementation to >>>>>> be able to answer all your questions precisely. >>>>>> >>>>>> I've attached a short paper by Andrew Birrell "Implementing >>>>>> Condition Variables with Semaphores" that you may find >>>>>> interesting / enlightening. >>>>>> >>>>>> My concern about using multiple mutex with same condition lies >>>>>> in the queuing operations. My recollection is that I've always >>>>>> associated only one mutex with a condition variable, but that >>>>>> you can have multiple conditions associated with the same mutex. >>>>>> >>>>>> I will go back and re-read Nelson again--its been a few years. >>>>>> >>>>>> Regards, >>>>>> Randy Coleburn >>>>>> >>>>>> >>> Jay K 10/18/2009 4:16 AM >>> >>>>>> I still have questions here. >>>>>> >>>>>> 1) >>>>>> Page 93 of the Nelson book: >>>>>> A monitor consists of some data, a mutex, and zero or more >>>>>> condition >>>>>> variables. A particular condition variable is always used >>>>>> in conjunction with the same mutex and its data. >>>>>> >>>>>> Doesn't this contradict the point made here? >>>>>> Does a condition variable always map to the same mutex >>>>>> or not? >>>>>> >>>>>> Or is this merely describing a typical usage pattern that is >>>>>> a subset of what interface Thread allows? >>>>>> >>>>>> >>>>>> 2) >>>>>> Can Wait only be satisfied by Signal/Broadcast, >>>>>> or also just via UnlockMutex? >>>>>> >>>>>> >>>>>> Depending on the answer to these questions, >>>>>> it seems you can largely merge mutex and condition variable. >>>>>> >>>>>> >>>>>> Condition variable is basically waiting for a >>>>>> thread to exit a mutex. >>>>>> Which is very very similar to LockMutex, except >>>>>> that it doesn't want to take the mutex in the uncontended >>>>>> case, it actually wants to wait for another thread >>>>>> to both acquire and release the mutex. >>>>>> >>>>>> >>>>>> I suspect I'm wrong on both of these. >>>>>> That condition variable really can use multiple mutexes. >>>>>> That exiting a mutex has no obligation to wake condition >>>>>> variables, >>>>>> though it might be in good faith to do so...er..if it is >>>>>> in good faith to not require programmer to use Signal/ >>>>>> Broadcast. >>>>>> >>>>>> >>>>>> Thanks, >>>>>> - Jay >>>>>> >>>>>> >>>>>> >>>>>> From: jay.krell at cornell.edu >>>>>> To: hosking at cs.purdue.edu; mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 19:13:03 +0000 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> That seems a little strange to me but I guess I'll have to keep >>>>>> it in mind. >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> From: hosking at cs.purdue.edu >>>>>> To: mika at async.async.caltech.edu >>>>>> Date: Thu, 8 Oct 2009 11:00:36 -0400 >>>>>> CC: m3devel at elegosoft.com >>>>>> Subject: Re: [M3devel] condition variables/win32 >>>>>> >>>>>> Sorry, yes, you are right of course! The Modula-3 spec (and >>>>>> the current pthreads-based implementation as also the win32 >>>>>> implementation I expect) do allow a condition variable being >>>>>> mediated by different mutexes. My comment was clouded by my >>>>>> recollection from the pthreads spec that for pthread mutex/cv >>>>>> behavior for other than 1 mutex per cv is undefined. This >>>>>> confusion may have been the source of prior bugs in the >>>>>> pthreads threading implementation, but those bugs are gone >>>>>> now. We support the M3 spec properly. >>>>>> >>>>>> On 8 Oct 2009, at 10:34, Mika Nystrom wrote: >>>>>> >>>>>> Why can't you use the same condition variable with different >>>>>> mutexes? >>>>>> >>>>>> This is dynamic, up to the M3 programmer, no? >>>>>> >>>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> In general, it is OK in M3 to associate multiple conditions >>>>>> with the >>>>>> same mutex. But not vice versa. >>>>>> >>>>>> On 8 Oct 2009, at 09:32, Jay K wrote: >>>>>> >>>>>> condition variables/win32 >>>>>> >>>>>> >>>>>> So..one way I think about condition variables >>>>>> is that you want to be woken when someone else >>>>>> leaves the mutex that guards the data that you are dealing with. >>>>>> You want to know when another thread modifies the data. >>>>>> (If you have a reader/writer lock, you only want to be >>>>>> woken when someone exits a write.) >>>>>> >>>>>> >>>>>> Now, if you consider a producer/consumer queue. >>>>>> There are two interesting occurences. >>>>>> Transitions from empty to non-empty >>>>>> and transitions from full to non-full (optionally, >>>>>> if it is fixed size). >>>>>> >>>>>> >>>>>> Consumers wait for empty to non-empty. >>>>>> Consumers signal full to non-full. >>>>>> Producers wait for full to non-full. >>>>>> Producers signal non-empty to empty. >>>>>> >>>>>> >>>>>> So, in this case, one mutex is likely used with with two >>>>>> condition >>>>>> variables. >>>>>> >>>>>> >>>>>> But, what if we take a simplifying deoptimization and assume >>>>>> that a >>>>>> condition >>>>>> variable is only ever associated with one mutex? >>>>>> Anyone existing that mutex wakes up anyone waiting on any >>>>>> condition >>>>>> associated with it? >>>>>> Like, a condition variable I think becomes stateless and >>>>>> everything is >>>>>> about the mutex? >>>>>> >>>>>> >>>>>> What is the downside? >>>>>> >>>>>> >>>>>> Condition variables are allowed to have spurious wakeups. >>>>>> This would "just" increase them. Too much? >>>>>> >>>>>> >>>>>> So, therefore, what would be wrong with the following design? >>>>>> a mutex contains an event >>>>>> and a number of waiters, zero or non-zero >>>>>> if a mutex is exiting with a non-zero number of waiters, signal >>>>>> the >>>>>> event >>>>>> >>>>>> >>>>>> To handle Signal vs. Broadcast >>>>>> method 1: >>>>>> the number of waiters might be interlocked >>>>>> the woken would decrement it >>>>>> if it isn't zero, signal the event again >>>>>> >>>>>> >>>>>> method 2: >>>>>> the number of waiters is both an integer and a semaphore >>>>>> and the lock exiter raises the semaphore by the the integer >>>>>> >>>>>> >>>>>> method 3: >>>>>> it is not an auto-reset event and there is a count >>>>>> and when the count goes to 0, reset the event >>>>>> I think in this case you have to maintain a "wait generation" >>>>>> so that new waiters don't prevent the count from ever hitting 0. >>>>>> I think this #3 is what Java might be doing, and is described >>>>>> here: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> "3.3. The Generation Count Solution" >>>>>> >>>>>> >>>>>> also: >>>>>> http://www.cs.wustl.edu/~schmidt/win32-cv-1.html >>>>>> 3.2. The SetEvent Solution >>>>>> Evaluating the SetEvent Solution >>>>>> Incorrectness -- >>>>>> >>>>>> >>>>>> Is that incorrect case really necessarily incorrect? >>>>>> It seems unfair, since first waiter should be first woken, but..? >>>>>> >>>>>> >>>>>> Am I missing something? A lot? >>>>>> >>>>>> >>>>>> - Jay >>>>>> >>>>>> >>>>>> --Apple-Mail-96--321618545 >>>>>> Content-Type: text/html; >>>>>> charset=US-ASCII >>>>>> Content-Transfer-Encoding: quoted-printable >>>>>> >>>>>> >>>>> space; = >>>>>> -webkit-line-break: after-white-space; ">
>>>>> apple-content-edited=3D"true">>>>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>>>> family: = >>>>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>>>> normal; = >>>>>> font-weight: normal; letter-spacing: normal; line-height: >>>>>> normal; = >>>>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>>>> none; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text- >>>>>> size-adjust: = >>>>>> auto; -webkit-text-stroke-width: 0; ">
>>>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>>>> after-white-space; ">>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">
>>>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>>>> -webkit-line-break: after-white-space; ">>>>>> style-span" = >>>>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>>>> spacing: = >>>>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>>>> font-variant: normal; font-weight: normal; letter-spacing: >>>>>> normal; = >>>>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>>>> text-indent: 0px; -webkit-text-size-adjust: auto; text- >>>>>> transform: none; = >>>>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>>>> ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>>>> spacing: = >>>>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>>>> 12px; = >>>>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>>>> letter-spacing: normal; line-height: normal; = >>>>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: >>>>>> 2; = >>>>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">In = >>>>>> general, it is OK in M3 to associate multiple conditions with >>>>>> the same = >>>>>> mutex.  But not vice versa.
>>>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>>>> Sans'">>>>>> class=3D"Apple-style-span" style=3D"font-size: = >>>>>> medium;">
>>>>> span>>>>>>
On 8 >>>>>> Oct 2009, = >>>>>> at 09:32, Jay K wrote:

>>>>> class=3D"Apple-interchange-newline">
>>>>> type=3D"cite">>>>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>>>> color: = >>>>>> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >>>>>> style: = >>>>>> normal; font-variant: normal; font-weight: normal; letter- >>>>>> spacing: = >>>>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>>>> indent: = >>>>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>>>> spacing: = >>>>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>>>> -webkit-border-vertical-spacing: 0px; = >>>>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>>>> adjust: = >>>>>> auto; -webkit-text-stroke-width: 0px; ">
>>>>> class=3D"hmmessage" = >>>>>> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >>>>>> variables/win32
 

So..one way I think about >>>>>> condition = >>>>>> variables
is that you want to be woken when someone >>>>>> else
leaves = >>>>>> the mutex that guards the data that you are dealing >>>>>> with.
You want to = >>>>>> know when another thread modifies the data.
(If you have a = >>>>>> reader/writer lock, you only want to be
woken when someone >>>>>> exits a = >>>>>> write.)
 

Now, if you consider a producer/ >>>>>> consumer = >>>>>> queue.
There are two interesting occurences.
Transitions >>>>>> from = >>>>>> empty to non-empty
and transitions from full to non-full = >>>>>> (optionally,
if it is fixed >>>>>> size).
 

Consumers wait = >>>>>> for empty to non-empty.
Consumers signal full to = >>>>>> non-full.
Producers wait for full to non-full.
Producers >>>>>> signal = >>>>>> non-empty to empty.
 

So, in this case, one >>>>>> mutex is = >>>>>> likely used with with two condition = >>>>>> variables.
 

But, what if we take a simplifying = >>>>>> deoptimization and assume that a condition
variable is only >>>>>> ever = >>>>>> associated with one mutex?
Anyone existing that mutex wakes >>>>>> up anyone = >>>>>> waiting on any condition associated with it?
Like, a >>>>>> condition = >>>>>> variable I think becomes stateless and everything is
about >>>>>> the = >>>>>> mutex?
 
 
What is the = >>>>>> downside?
 

Condition variables are allowed to >>>>>> have = >>>>>> spurious wakeups.
This would "just" increase them. Too = >>>>>> much?
 

So, therefore, what would be wrong with >>>>>> the = >>>>>> following design?
 a mutex contains an event>>>>> class=3D"Apple-converted-space"> 
 and a >>>>>> number of = >>>>>> waiters, zero or non-zero>>>>> class=3D"Apple-converted-space"> 
 if a >>>>>> mutex is = >>>>>> exiting with a non-zero number of waiters, signal the = >>>>>> event
 

To handle Signal vs. Broadcast
method = >>>>>> 1:
 the number of waiters might be >>>>>> interlocked
 the = >>>>>> woken would decrement it
 if it isn't zero, signal the >>>>>> event = >>>>>> again
 

method 2:
 the number of waiters >>>>>> is both = >>>>>> an integer and a semaphore
 and the lock exiter raises >>>>>> the = >>>>>> semaphore by the the integer

 
method >>>>>> 3:
 it is = >>>>>> not an auto-reset event and there is a count
  and when >>>>>> the = >>>>>> count goes to 0, reset the event
 I think in this case >>>>>> you have = >>>>>> to maintain a "wait generation">>>>> class=3D"Apple-converted-space"> 
 so that >>>>>> new = >>>>>> waiters don't prevent the count from ever hitting 0.
 I >>>>>> think = >>>>>> this #3 is what Java might be doing, and is described >>>>>> here:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The >>>>>> Generation Count = >>>>>> Solution"

 
also:
>>>>> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu= >>>>>> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >>>>>> Solution
Evaluating the SetEvent Solution
Incorrectness -- >>>>>> >>>>> class=3D"Apple-converted-space"> >>>>> span>
 

Is that = >>>>>> incorrect case really necessarily incorrect?
It seems >>>>>> unfair, since = >>>>>> first waiter should be first woken, but..?

 
Am >>>>>> I missing = >>>>>> something? A lot?
 

 - = >>>>>> Jay

= >>>>>> >>>>>> --Apple-Mail-96--321618545-- >>>>>> >>>>>> >>>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 07:57:26 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 07:57:26 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091013084639.6q5ee16i00oskogs@mail.elegosoft.com> <05739683-25B8-4A14-9B1A-CDD9A669017D@cs.purdue.edu> <20091015234504.1eb5malceg4kcwo8@mail.elegosoft.com> <20091018123028.1v22evo8ms88ksok@mail.elegosoft.com> <6DB206B5-AD89-4E91-B858-8168C29865E1@cs.purdue.edu> <6C3667AB-2241-45B9-A0D6-7DC251B3AADB@cs.purdue.edu> <20091019005948.wptblfr808sc8400@mail.elegosoft.com> <732FCA85-29B9-4A05-8C21-358E4D78AB4E@cs.purdue.edu> <5485957F-122E-4A43-8C01-CFF76AD0FEFB@cs.purdue.edu> Message-ID: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> I finally did some quick runs with some runtime arguments. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 runs as expected, but no threads debug output. bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 ^C hangs and shows this output: 1: 1 2: 1 2 3: 1 2 3 4: 1 2 3 4 5: 1 2 3 4 5 6: 1 2 3 4 5 6 7: 1 2 3 4 5 6 7 8: 1 2 3 4 5 6 7 8 9: Stopping from act=0x7eb46d00 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 Stopping act=0x7eb46a00 Stopping act=0x7eb46800 Stopping act=0x7eb46780 Stopping act=0x7eb46300 Stopping act=0x7eb46100 Stopping act=0x7eb46500 Stopping act=0x7eb46000 Stopping act=0x7eb46180 ... bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > log2.ko 2>&1 ^C does not give us any more hints. If you 'd like anything else, I can try again this evening. Hope this helps, 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 Oct 21 08:49:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 06:49:22 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021075726.o9d1ruk54wkck8s4@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? - Jay > Date: Wed, 21 Oct 2009 07:57:26 +0200 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > I finally did some quick runs with some runtime arguments. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3nogc @M3debugthreads > log.ko 2>&1 > > runs as expected, but no threads debug output. > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads > log.ko 2>&1 > ^C > > hangs and shows this output: > > 1: 1 > 2: 1 2 > 3: 1 2 3 > 4: 1 2 3 4 > 5: 1 2 3 4 5 > 6: 1 2 3 4 5 6 > 7: 1 2 3 4 5 6 7 > 8: 1 2 3 4 5 6 7 8 > 9: Stopping from act=0x7eb46d00 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > Stopping act=0x7eb46a00 > Stopping act=0x7eb46800 > Stopping act=0x7eb46780 > Stopping act=0x7eb46300 > Stopping act=0x7eb46100 > Stopping act=0x7eb46500 > Stopping act=0x7eb46000 > Stopping act=0x7eb46180 > ... > > bash-3.2$ src/p0/p007/I386_OPENBSD/pgm @M3debugthreads @M3paranoidgc > > log2.ko 2>&1 > ^C > > does not give us any more hints. > > If you 'd like anything else, I can try again this evening. > > Hope this helps, > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 09:21:57 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 09:21:57 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Quoting Jay K : > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 21 11:06:40 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 09:06:40 +0000 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with over 200 runs (using @M3no-trestle-await-delete). ..Jay > Date: Wed, 21 Oct 2009 09:21:57 +0200 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Status of threads for RC4? > > Quoting Jay K : > > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 12:21:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 10:21:30 +0000 Subject: [M3devel] Juno/Win32 heap corruption Message-ID: I thought this was gone, but now I'm still seeing occasional heap corruption in Juno on Win32. It has the same signature of accessing 001ffffc. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael.anderson at elego.de Wed Oct 21 13:42:52 2009 From: michael.anderson at elego.de (Michael Anderson) Date: Wed, 21 Oct 2009 13:42:52 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091020193512.GA31133@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> Message-ID: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Hi, Here's an overview of the cm3 repo disk usage on birch: 1385736 /usr/cvs/cm3 32 /usr/cvs/cm3/Attic 2788 /usr/cvs/cm3/caltech-parser 191852 /usr/cvs/cm3/doc 780 /usr/cvs/cm3/examples 4252 /usr/cvs/cm3/m3-comm 1664 /usr/cvs/cm3/m3-db 5340 /usr/cvs/cm3/m3-demo 856 /usr/cvs/cm3/m3-games 1624 /usr/cvs/cm3/m3-lectern 46620 /usr/cvs/cm3/m3-libs 4460 /usr/cvs/cm3/m3-libs/arithmetic 68 /usr/cvs/cm3/m3-libs/binIO 136 /usr/cvs/cm3/m3-libs/bitvector 48 /usr/cvs/cm3/m3-libs/commandrw 56 /usr/cvs/cm3/m3-libs/debug 52 /usr/cvs/cm3/m3-libs/deepcopy 240 /usr/cvs/cm3/m3-libs/digraph 32 /usr/cvs/cm3/m3-libs/dosunixrw 456 /usr/cvs/cm3/m3-libs/dps 44 /usr/cvs/cm3/m3-libs/embutils 256 /usr/cvs/cm3/m3-libs/fftw 204 /usr/cvs/cm3/m3-libs/lapack 48 /usr/cvs/cm3/m3-libs/libbuf 4764 /usr/cvs/cm3/m3-libs/libm3 100 /usr/cvs/cm3/m3-libs/libsio 64 /usr/cvs/cm3/m3-libs/listfuncs 26568 /usr/cvs/cm3/m3-libs/m3core 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced 1980 /usr/cvs/cm3/m3-libs/m3gc-simple 276 /usr/cvs/cm3/m3-libs/m3tk-misc 56 /usr/cvs/cm3/m3-libs/parseparams 208 /usr/cvs/cm3/m3-libs/patternmatching 672 /usr/cvs/cm3/m3-libs/plplot 160 /usr/cvs/cm3/m3-libs/realgeometry 80 /usr/cvs/cm3/m3-libs/set 260 /usr/cvs/cm3/m3-libs/sgml 156 /usr/cvs/cm3/m3-libs/slisp 252 /usr/cvs/cm3/m3-libs/sortedtableextras 728 /usr/cvs/cm3/m3-libs/synthesizer 524 /usr/cvs/cm3/m3-libs/sysutils 52 /usr/cvs/cm3/m3-libs/table-list 152 /usr/cvs/cm3/m3-libs/tcl 48 /usr/cvs/cm3/m3-libs/tempfiles 76 /usr/cvs/cm3/m3-libs/unittest 28 /usr/cvs/cm3/m3-libs/unittest-numeric 1404 /usr/cvs/cm3/m3-libs/wellfett 1680 /usr/cvs/cm3/m3-mail 5652 /usr/cvs/cm3/m3-obliq 1068 /usr/cvs/cm3/m3-pkgtools 1079736 /usr/cvs/cm3/m3-sys 1952 /usr/cvs/cm3/m3-sys/cm3 18876 /usr/cvs/cm3/m3-sys/cm3ide 1756 /usr/cvs/cm3/m3-sys/cminstall 132 /usr/cvs/cm3/m3-sys/dll2lib 68 /usr/cvs/cm3/m3-sys/fix_nl 44 /usr/cvs/cm3/m3-sys/libdump 320 /usr/cvs/cm3/m3-sys/m3back 781656 /usr/cvs/cm3/m3-sys/m3cc 32 /usr/cvs/cm3/m3-sys/m3cgcat 44 /usr/cvs/cm3/m3-sys/m3cggen 4036 /usr/cvs/cm3/m3-sys/m3front 256428 /usr/cvs/cm3/m3-sys/m3gdb 264 /usr/cvs/cm3/m3-sys/m3linker 220 /usr/cvs/cm3/m3-sys/m3loader 1604 /usr/cvs/cm3/m3-sys/m3middle 260 /usr/cvs/cm3/m3-sys/m3objfile 632 /usr/cvs/cm3/m3-sys/m3quake 88 /usr/cvs/cm3/m3-sys/m3scanner 40 /usr/cvs/cm3/m3-sys/m3staloneback 10732 /usr/cvs/cm3/m3-sys/m3tests 344 /usr/cvs/cm3/m3-sys/m3tools 60 /usr/cvs/cm3/m3-sys/mklib 92 /usr/cvs/cm3/m3-sys/scripts 44 /usr/cvs/cm3/m3-sys/windowsResources 11012 /usr/cvs/cm3/m3-tools 20396 /usr/cvs/cm3/m3-ui 544 /usr/cvs/cm3/m3-win 972 /usr/cvs/cm3/m3-www 4008 /usr/cvs/cm3/scripts 16 /usr/cvs/cm3/style 88 /usr/cvs/cm3/sup 3268 /usr/cvs/cm3/tools 1424 /usr/cvs/cm3/www -Mike Quoting hendrik at topoi.pooq.com: > I just downloaded the entire CVS using cvsup and the > control file with the non-comment lines > > *default host=modula3.elegosoft.com > > *default base=/farhome/hendrik/cm3/CVSUP/cvs > *default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > *default compress > *default preserve > > and it ended up using a big pile of disk space: > > #cvsroot > hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > 1390120 cvs > hendrik at lovesong:~/cm3/CVSUP$ > > > Is it likely that I've got everything that the m3 > developers might want to have in a distributed versioning > system? If so, I'll start experimenting with conversions. > > -- hendrik > > -- 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 jay.krell at cornell.edu Wed Oct 21 13:53:22 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 11:53:22 +0000 Subject: [M3devel] @M3CheckShape? Message-ID: Debugging Juno on Win32..I found that some apps fail if you specify @M3CheckShape. Verified with Juno and mentor on I386_DARWIN. The error is that VBT.FatalError is not in the RAISES list. But that only occurs if the exception is raised, right? Is the check wrong or other code wrong? - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:36:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:36:55 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > Quoting Jay K : > >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:38:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:38:09 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: Precisely. The problem is that the signal mechanism to stop thread for GC is not working. This is a bogosity of the OpenBSD user-level threads implementation. Either we configure OpenBSD to use ThreadPosix instead of ThreadPThread or we switch to rthreads. On 21 Oct 2009, at 05:06, Jay K wrote: > Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with > over 200 runs (using @M3no-trestle-await-delete). > > ..Jay > > > Date: Wed, 21 Oct 2009 09:21:57 +0200 > > From: wagner at elegosoft.com > > To: jay.krell at cornell.edu > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Status of threads for RC4? > > > > Quoting Jay K : > > > > > Is it reasonable maybe to rewrite this test in C and see if it > hangs? > > > > > > ie. see if maybe it is an OpenBSD bug? > > > > It doesn't hang with garbage collection turned off, so there must be > > some unhealthy interaction between that and the thread > implementation. > > I don't think you will be able to narrow it down with a C test. > > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:46:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:46:27 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> Message-ID: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> The gross fix is to have threads in blocking pthread calls to post their blocked status on entry. The GC stop-world code can simply notice they are blocked and not try to signal them, but just set their status to stopping. When the blocked thread returns from the blocking call it can notice the stopping state and transition to stopped, waiting on the stop-world semaphore. This appears to be what the Kaffe VM folks do. The unfortunate thing is that this is *totally unnecessary* on every other platform except OpenBSD, as far as I know. We do not want to add cruft to the thread primitives just to support a broken user-level threads system. Better just to revert OpenBSD to our own user-level ThreadPosix implementation until OpenBSD wakes up to the real world of SMP and multicore. On 21 Oct 2009, at 09:38, Tony Hosking wrote: > Precisely. The problem is that the signal mechanism to stop thread > for GC is not working. This is a bogosity of the OpenBSD user-level > threads implementation. Either we configure OpenBSD to use > ThreadPosix instead of ThreadPThread or we switch to rthreads. > > On 21 Oct 2009, at 05:06, Jay K wrote: > >> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >> over 200 runs (using @M3no-trestle-await-delete). >> >> ..Jay >> >> > Date: Wed, 21 Oct 2009 09:21:57 +0200 >> > From: wagner at elegosoft.com >> > To: jay.krell at cornell.edu >> > CC: m3devel at elegosoft.com >> > Subject: Re: [M3devel] Status of threads for RC4? >> > >> > Quoting Jay K : >> > >> > > Is it reasonable maybe to rewrite this test in C and see if it >> hangs? >> > > >> > > ie. see if maybe it is an OpenBSD bug? >> > >> > It doesn't hang with garbage collection turned off, so there must >> be >> > some unhealthy interaction between that and the thread >> implementation. >> > I don't think you will be able to narrow it down with a C test. >> > >> > 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 >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Wed Oct 21 15:51:16 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 09:51:16 -0400 Subject: [M3devel] Juno/Win32 heap corruption In-Reply-To: References: Message-ID: <72EAD05B-B812-4A7E-B07E-262F30AC9A52@cs.purdue.edu> Can you not set a HW watchpoint to check for the location being overwritten with the bogus pointer? Also, better to run with @M3paranoidgc so you catch it in the heap sanity checks (which check to make sure that pointers really look like pointers) rather than some arbitrary place. 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 21 Oct 2009, at 06:21, Jay K wrote: > I thought this was gone, but now I'm still seeing occasional heap > corruption in Juno on Win32. > It has the same signature of accessing 001ffffc. > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Wed Oct 21 16:00:42 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:00:42 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <57F22F9D-F09E-4A4C-8E79-12BF3106FF5D@cs.purdue.edu> Message-ID: <20091021160042.abtrrlb37okco48s@mail.elegosoft.com> Quoting Tony Hosking : > The gross fix is to have threads in blocking pthread calls to post > their blocked status on entry. The GC stop-world code can simply > notice they are blocked and not try to signal them, but just set their > status to stopping. When the blocked thread returns from the blocking > call it can notice the stopping state and transition to stopped, > waiting on the stop-world semaphore. This appears to be what the > Kaffe VM folks do. The unfortunate thing is that this is *totally > unnecessary* on every other platform except OpenBSD, as far as I know. > We do not want to add cruft to the thread primitives just to support > a broken user-level threads system. Better just to revert OpenBSD to > our own user-level ThreadPosix implementation until OpenBSD wakes up > to the real world of SMP and multicore. Yes. We should not introduce unnecessary workarounds for broken platform libraries. If user-level threads work, that should be fine. Olaf > On 21 Oct 2009, at 09:38, Tony Hosking wrote: > >> Precisely. The problem is that the signal mechanism to stop thread >> for GC is not working. This is a bogosity of the OpenBSD >> user-level threads implementation. Either we configure OpenBSD to >> use ThreadPosix instead of ThreadPThread or we switch to rthreads. >> >> On 21 Oct 2009, at 05:06, Jay K wrote: >> >>> Interesting -- Juno on Win32 also doesn't hang with @M3nogc, with >>> over 200 runs (using @M3no-trestle-await-delete). >>> >>> ..Jay >>> >>>> Date: Wed, 21 Oct 2009 09:21:57 +0200 >>>> From: wagner at elegosoft.com >>>> To: jay.krell at cornell.edu >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> >>>> Quoting Jay K : >>>> >>>> > Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> > >>>> > ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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 wagner at elegosoft.com Wed Oct 21 16:04:54 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:04:54 +0200 Subject: [M3devel] Status of threads for RC4? In-Reply-To: References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> Message-ID: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Quoting Tony Hosking : > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > >> Quoting Jay K : >> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 wagner at elegosoft.com Wed Oct 21 16:31:01 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 16:31:01 +0200 Subject: [M3devel] new trac tickets for threads etc. Message-ID: <20091021163101.y8rkzklgkgg0040w@mail.elegosoft.com> FYI, I've created the following tickets to document the current problems, work-arounds and resolutions: https://projects.elego.de/cm3/ticket/1073 https://projects.elego.de/cm3/ticket/1074 https://projects.elego.de/cm3/ticket/1075 Please feel free to add and change the information. All tickets are targeted at the -- again overdue -- RC4. (Regardsless what date I specify, it's never late enough ;-) 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 Oct 21 18:06:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 12:06:12 -0400 Subject: [M3devel] Status of threads for RC4? In-Reply-To: <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> References: <20091008121439.jpj6ws46osggssko@mail.elegosoft.com> <1ED32194-E48B-42FC-88FE-A84196D2FE5B@cs.purdue.edu> <20091021092157.wyaqtsuyu8ko8cs8@mail.elegosoft.com> <20091021160454.hcs81wbfd44o88wo@mail.elegosoft.com> Message-ID: <5E9865BF-FB72-4157-B138-1C4F549C1AC9@cs.purdue.edu> This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 hendrik at topoi.pooq.com Wed Oct 21 18:47:50 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Wed, 21 Oct 2009 12:47:50 -0400 Subject: [M3devel] cvs size In-Reply-To: <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> Message-ID: <20091021164750.GA1700@topoi.pooq.com> On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: > Hi, > > Here's an overview of the cm3 repo disk usage on birch: Thanks. It looks as if things went OK. Ths only difference I noticed is that I ended up with a cvs/sup directory as well as a cvs/cm3/sup directory. My guess is that it's something that cvsup uses to keep track of things so I rerun cvsup to get updates efficiently. But why do I get two of them? OR alternatively, why is the one my cvsup generates in a different place from the one you have in your repository. Do I even need a copy of yours? Might it confuse cvsup? -- hendrik > > 1385736 /usr/cvs/cm3 > > 32 /usr/cvs/cm3/Attic > 2788 /usr/cvs/cm3/caltech-parser > 191852 /usr/cvs/cm3/doc > 780 /usr/cvs/cm3/examples > 4252 /usr/cvs/cm3/m3-comm > 1664 /usr/cvs/cm3/m3-db > 5340 /usr/cvs/cm3/m3-demo > 856 /usr/cvs/cm3/m3-games > 1624 /usr/cvs/cm3/m3-lectern > 46620 /usr/cvs/cm3/m3-libs > > 4460 /usr/cvs/cm3/m3-libs/arithmetic > 68 /usr/cvs/cm3/m3-libs/binIO > 136 /usr/cvs/cm3/m3-libs/bitvector > 48 /usr/cvs/cm3/m3-libs/commandrw > 56 /usr/cvs/cm3/m3-libs/debug > 52 /usr/cvs/cm3/m3-libs/deepcopy > 240 /usr/cvs/cm3/m3-libs/digraph > 32 /usr/cvs/cm3/m3-libs/dosunixrw > 456 /usr/cvs/cm3/m3-libs/dps > 44 /usr/cvs/cm3/m3-libs/embutils > 256 /usr/cvs/cm3/m3-libs/fftw > 204 /usr/cvs/cm3/m3-libs/lapack > 48 /usr/cvs/cm3/m3-libs/libbuf > 4764 /usr/cvs/cm3/m3-libs/libm3 > 100 /usr/cvs/cm3/m3-libs/libsio > 64 /usr/cvs/cm3/m3-libs/listfuncs > 26568 /usr/cvs/cm3/m3-libs/m3core > 1900 /usr/cvs/cm3/m3-libs/m3gc-enhanced > 1980 /usr/cvs/cm3/m3-libs/m3gc-simple > 276 /usr/cvs/cm3/m3-libs/m3tk-misc > 56 /usr/cvs/cm3/m3-libs/parseparams > 208 /usr/cvs/cm3/m3-libs/patternmatching > 672 /usr/cvs/cm3/m3-libs/plplot > 160 /usr/cvs/cm3/m3-libs/realgeometry > 80 /usr/cvs/cm3/m3-libs/set > 260 /usr/cvs/cm3/m3-libs/sgml > 156 /usr/cvs/cm3/m3-libs/slisp > 252 /usr/cvs/cm3/m3-libs/sortedtableextras > 728 /usr/cvs/cm3/m3-libs/synthesizer > 524 /usr/cvs/cm3/m3-libs/sysutils > 52 /usr/cvs/cm3/m3-libs/table-list > 152 /usr/cvs/cm3/m3-libs/tcl > 48 /usr/cvs/cm3/m3-libs/tempfiles > 76 /usr/cvs/cm3/m3-libs/unittest > 28 /usr/cvs/cm3/m3-libs/unittest-numeric > 1404 /usr/cvs/cm3/m3-libs/wellfett > > 1680 /usr/cvs/cm3/m3-mail > 5652 /usr/cvs/cm3/m3-obliq > 1068 /usr/cvs/cm3/m3-pkgtools > 1079736 /usr/cvs/cm3/m3-sys > > 1952 /usr/cvs/cm3/m3-sys/cm3 > 18876 /usr/cvs/cm3/m3-sys/cm3ide > 1756 /usr/cvs/cm3/m3-sys/cminstall > 132 /usr/cvs/cm3/m3-sys/dll2lib > 68 /usr/cvs/cm3/m3-sys/fix_nl > 44 /usr/cvs/cm3/m3-sys/libdump > 320 /usr/cvs/cm3/m3-sys/m3back > 781656 /usr/cvs/cm3/m3-sys/m3cc > 32 /usr/cvs/cm3/m3-sys/m3cgcat > 44 /usr/cvs/cm3/m3-sys/m3cggen > 4036 /usr/cvs/cm3/m3-sys/m3front > 256428 /usr/cvs/cm3/m3-sys/m3gdb > 264 /usr/cvs/cm3/m3-sys/m3linker > 220 /usr/cvs/cm3/m3-sys/m3loader > 1604 /usr/cvs/cm3/m3-sys/m3middle > 260 /usr/cvs/cm3/m3-sys/m3objfile > 632 /usr/cvs/cm3/m3-sys/m3quake > 88 /usr/cvs/cm3/m3-sys/m3scanner > 40 /usr/cvs/cm3/m3-sys/m3staloneback > 10732 /usr/cvs/cm3/m3-sys/m3tests > 344 /usr/cvs/cm3/m3-sys/m3tools > 60 /usr/cvs/cm3/m3-sys/mklib > 92 /usr/cvs/cm3/m3-sys/scripts > 44 /usr/cvs/cm3/m3-sys/windowsResources > > 11012 /usr/cvs/cm3/m3-tools > 20396 /usr/cvs/cm3/m3-ui > 544 /usr/cvs/cm3/m3-win > 972 /usr/cvs/cm3/m3-www > 4008 /usr/cvs/cm3/scripts > 16 /usr/cvs/cm3/style > 88 /usr/cvs/cm3/sup > 3268 /usr/cvs/cm3/tools > 1424 /usr/cvs/cm3/www > > -Mike > > Quoting hendrik at topoi.pooq.com: > > >I just downloaded the entire CVS using cvsup and the > >control file with the non-comment lines > > > >*default host=modula3.elegosoft.com > > > >*default base=/farhome/hendrik/cm3/CVSUP/cvs > >*default prefix=/farhome/hendrik/cm3/CVSUP/cvs > > > >*default compress > >*default preserve > > > >and it ended up using a big pile of disk space: > > > >#cvsroot > >hendrik at lovesong:~/cm3/CVSUP$ du -s cvs > >1390120 cvs > >hendrik at lovesong:~/cm3/CVSUP$ > > > > > >Is it likely that I've got everything that the m3 > >developers might want to have in a distributed versioning > >system? If so, I'll start experimenting with conversions. > > > >-- hendrik > > > > > > > > -- > 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 wagner at elegosoft.com Wed Oct 21 20:05:37 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 20:05:37 +0200 Subject: [M3devel] Fwd: Re: Status of threads for RC4? Message-ID: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 > ----- End forwarded message ----- -- 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 -------------- This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > Quoting Tony Hosking : > >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >>> Quoting Jay K : >>> >>>> Is it reasonable maybe to rewrite this test in C and see if it >>>> hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off, so there must be >>> some unhealthy interaction between that and the thread >>> implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> 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 wagner at elegosoft.com Wed Oct 21 21:12:36 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Wed, 21 Oct 2009 21:12:36 +0200 Subject: [M3devel] cvs size In-Reply-To: <20091021164750.GA1700@topoi.pooq.com> References: <20091020193512.GA31133@topoi.pooq.com> <20091021134252.t6ccjxmhtwock0s4@mail.elego.de> <20091021164750.GA1700@topoi.pooq.com> Message-ID: <20091021211236.0m6f81bc0kocggo4@mail.elegosoft.com> Quoting hendrik at topoi.pooq.com: > On Wed, Oct 21, 2009 at 01:42:52PM +0200, Michael Anderson wrote: >> Hi, >> >> Here's an overview of the cm3 repo disk usage on birch: > > Thanks. It looks as if things went OK. > > Ths only difference I noticed is that I ended up with a cvs/sup > directory as well as a cvs/cm3/sup directory. > > My guess is that it's something that cvsup uses to keep track of things > so I rerun cvsup to get updates efficiently. But why do I get two of > them? OR alternatively, why is the one my cvsup generates in a > different place from the one you have in your repository. > > Do I even need a copy of yours? Might it confuse cvsup? The one on the server is just a relict, I guess. You only need the local one. CVSup keeps a checksum list there. You can delete it, but it will speed up things if it exists. 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 Oct 21 22:02:26 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Wed, 21 Oct 2009 13:02:26 -0700 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 >> > > > > ----- End forwarded message ----- > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb?ude 12, 13355 Berlin, Germ > any > 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: Be > rlin > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > DE163214194 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > >> Quoting Tony Hosking : >> >>> Yes, a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >>> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >>> >>>> Quoting Jay K : >>>> >>>>> Is it reasonable maybe to rewrite this test in C and see if it >>>>> hangs? >>>>> >>>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off, so there must >>>> be >>>> some unhealthy interaction between that and the thread >>>> implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> 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, Ge >> rmany >> 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 Wed Oct 21 23:02:41 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:02:41 +0000 Subject: [M3devel] Juno/Thread/Win32 notes Message-ID: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Wed Oct 21 23:07:09 2009 From: jay.krell at cornell.edu (Jay K) Date: Wed, 21 Oct 2009 21:07:09 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 02:12:55 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 00:12:55 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: ps: notice: >> resumed system calls will return an error value of EINTR We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 03:05:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 01:05:30 +0000 Subject: [M3devel] interesting book on concurrency Message-ID: search the web for: "the little book of semaphores" by Allen Downey. http://www.greenteapress.com/semaphores/ - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 03:32:26 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:32:26 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: On 21 Oct 2009, at 20:12, Jay K wrote: > ps: notice: > > >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. > We probably need to handle that in a bunch of places. > But some things like read/write will return just having done a > partial read/write? Huh? Should already be done? > Maybe something more cooperative would be easier? > Or even user threads?? > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. > > - Jay > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 21:07:09 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Not sure how the formatting will come through..but yes. > Hopefully on all processor architectures. > > > "np" means "not portable", ok > > > http://www.openbsd.org/cgi-bin/man.cgi > > appropos suspend > > http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 > > PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > PTHREAD_SUSPEND_NP(3) > > NAME > pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, > pthread_resume_all_np - suspend and resume thread(s) > > SYNOPSIS > #include > #include > > int > pthread_suspend_np(pthread_t thread); > > void > pthread_suspend_all_np(void); > > int > pthread_resume_np(pthread_t thread); > > void > pthread_resume_all_np(void); > > DESCRIPTION > The pthread_suspend_np() function interrupts the given thread > and places > it in a suspended state. > > The pthread_suspend_all_np() function interrupts all threads > except the > current thread and places them in a suspended state. > > The pthread_resume_np() function resumes a thread suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_all_np() function resumes all threads > suspended with > pthread_suspend_np() or pthread_suspend_all_np(). > > The pthread_resume_np() and pthread_resume_all_np() functions > have no ef- > fect on threads that have not been suspended. > > Suspending and resuming a thread has an effect similar to that > of receiv- > ing a signal, namely that resumed system calls will return an > error value > of EINTR. > > RETURN VALUES > The pthread_suspend_np() and pthread_resume_np() functions fail > if: > > [ESRCH] No thread could be found corresponding to that > specified by > the given thread ID. > > The pthread_suspend_np() function fails if: > > [EDEADLK] Attempt to suspend the current thread. > > SEE ALSO > pthread_cancel(3), pthreads(3) > > STANDARDS > The pthread_suspend_np(), pthread_suspend_all_np(), > pthread_resume_np() > and pthread_resume_all_np() functions are non-portable and may > not be > supported with the above semantics on other POSIX systems. > > OpenBSD 4.5 May 31, > 2007 1 > NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > > - Jay > > > From: jay.krell at cornell.edu > To: wagner at elegosoft.com > Date: Wed, 21 Oct 2009 13:02:26 -0700 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > OpenBSD has good documentation.. (man pages) > > - Jay (phone) > > On Oct 21, 2009, at 11:05 AM, Olaf Wagner > wrote: > > Stefan, > > you are our OpenBSD fan, aren't you? Can you answer this? > > Olaf > > ----- Forwarded message from hosking at cs.purdue.edu ----- > Date: Wed, 21 Oct 2009 12:06:12 -0400 > From: Tony Hosking > Reply-To: Tony Hosking > Subject: Re: [M3devel] Status of threads for RC4? > To: Olaf Wagner > Cc: Jay K , m3devel > > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, pthread_resume? > If so then we could work avoid the signals entirely (as we do on OS > X). All that is needed is implementation of RTMachine.SuspendThread, > RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread > implementation. > I don't think you will be able to narrow it down with a C test. > > 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 > > > > > ----- End forwarded message ----- > > > -- > 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 > > This is a known problem for the user-level pthreads on OpenBSD. > > Quick question: does OpenBSD support pthread_suspend, > pthread_resume? If so then we could work avoid the signals entirely > (as we do on OS X). All that is needed is implementation of > RTMachine.SuspendThread, RTMachine.ResumeThread and > RTMachine.GetState for OpenBSD targets. > > On 21 Oct 2009, at 10:04, Olaf Wagner wrote: > > Quoting Tony Hosking : > > Yes, a C test can tell us if threads waiting on mutexes are able to > receive pthread_kill signals. > > Could you add such a simple test program somewhere in m3tests or > m3core/tests? We could also use that for a bug report to the > OpenBSD developers (they won't like to install m3 to reproduce > the error). > > Olaf > > On 21 Oct 2009, at 03:21, Olaf Wagner wrote: > > Quoting Jay K : > > Is it reasonable maybe to rewrite this test in C and see if it hangs? > > ie. see if maybe it is an OpenBSD bug? > > It doesn't hang with garbage collection turned off, so there must be > some unhealthy interaction between that and the thread implementation. > I don't think you will be able to narrow it down with a C test. > > 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 hosking at cs.purdue.edu Thu Oct 22 03:56:21 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Wed, 21 Oct 2009 21:56:21 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> On 21 Oct 2009, at 17:02, Jay K wrote: > ThreadWin32.m3 almost exactly matches Birrel's design. > The order of two unlocks is reversed. It probably doesn't matter. > He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. > We have queueing on our locks which appears unncessary, but is maybe > with in mind an optimization mentioned but now shown by Birrel -- > that of Signal with a lock held transfering a thread right > to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. > Birrel also has one mutex per condition variable but that > seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/ broadcast thread. > I believe there is much room for performance improvement > here, but if it is correct, it is ok for this release. > As well, I believe lock/conditionvariables can be made to work > in threads not created by the Modula-3 runtime, at least with > a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). > (owner = GetCurrentThreadId instead of T). Sure. > I put in a bunch of RTIO in Juno. > Whenever it hangs, the Signal call doesn't actually occur. > We have to try to figure out why. > It is something in the Misc/misc calls. What are the Misc/misc calls? > So ThreadWin32.m3 is fairly well vindicated (except > maybe via some roundabout fashion). > > > The heap corruption is now fairly rare in Juno. > I don't know if it is consistent or not. > The contents are, not sure of the address. > I'll debug more. > > > My next idea..since I think the corruption involves > copying a pixmap over other data, is to alter all > pixmaps to be composed of specific data, see if that > occurs in the corruption, to try to confirm this > part of my theory. > > > If that holds, then the memcpys done by gc could > check for the pattern (actually they could check > anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. > As well, with ThreadWin32.m3 having gotten some fixes, > getting various timestamps of the source tree might be > a good idea. > > > With ThreadWin32.m3 fairly well vindicated, we might > declare the quality is high enough asis. ? > But I'd like to keep investigating. > (Anyone else can?) > > > The doubt imho is now more cast upon the Win32 Trestle code. > We might even try Cygwin configured to use Win32 threads > and X Windows and see if that has the same bug. > > > Later.. > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:21:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:21:28 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 22 07:24:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:24:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: > Huh? Should already be done? Could be. > I do have make/get/set/swapcontext synthesized from setjmp/longjmp > on some OpenBSD platforms, like ppc/x86. > These are available for OpenBSD already. Not sure why you synthesized. Not that I see. They probably don't scramble in setjmp/longjmp though? (else mine wouldn't work) but making setjmp work is almost the same work as building get/set/make/swapcontext on top of it, gotta poke around in the jmpbuf either way. - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Wed, 21 Oct 2009 21:32:26 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? On 21 Oct 2009, at 20:12, Jay K wrote: ps: notice: >> resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms, like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized. - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 21:07:09 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Not sure how the formatting will come through..but yes. Hopefully on all processor architectures. "np" means "not portable", ok http://www.openbsd.org/cgi-bin/man.cgi appropos suspend http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual PTHREAD_SUSPEND_NP(3) NAME pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, pthread_resume_all_np - suspend and resume thread(s) SYNOPSIS #include #include int pthread_suspend_np(pthread_t thread); void pthread_suspend_all_np(void); int pthread_resume_np(pthread_t thread); void pthread_resume_all_np(void); DESCRIPTION The pthread_suspend_np() function interrupts the given thread and places it in a suspended state. The pthread_suspend_all_np() function interrupts all threads except the current thread and places them in a suspended state. The pthread_resume_np() function resumes a thread suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_all_np() function resumes all threads suspended with pthread_suspend_np() or pthread_suspend_all_np(). The pthread_resume_np() and pthread_resume_all_np() functions have no ef- fect on threads that have not been suspended. Suspending and resuming a thread has an effect similar to that of receiv- ing a signal, namely that resumed system calls will return an error value of EINTR. RETURN VALUES The pthread_suspend_np() and pthread_resume_np() functions fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. The pthread_suspend_np() function fails if: [EDEADLK] Attempt to suspend the current thread. SEE ALSO pthread_cancel(3), pthreads(3) STANDARDS The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() and pthread_resume_all_np() functions are non-portable and may not be supported with the above semantics on other POSIX systems. OpenBSD 4.5 May 31, 2007 1 NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS - Jay From: jay.krell at cornell.edu To: wagner at elegosoft.com Date: Wed, 21 Oct 2009 13:02:26 -0700 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? OpenBSD has good documentation.. (man pages) - Jay (phone) On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: Stefan, you are our OpenBSD fan, aren't you? Can you answer this? Olaf ----- Forwarded message from hosking at cs.purdue.edu ----- Date: Wed, 21 Oct 2009 12:06:12 -0400 From: Tony Hosking Reply-To: Tony Hosking Subject: Re: [M3devel] Status of threads for RC4? To: Olaf Wagner Cc: Jay K , m3devel This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 ----- End forwarded message ----- -- 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 This is a known problem for the user-level pthreads on OpenBSD. Quick question: does OpenBSD support pthread_suspend, pthread_resume? If so then we could work avoid the signals entirely (as we do on OS X). All that is needed is implementation of RTMachine.SuspendThread, RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. On 21 Oct 2009, at 10:04, Olaf Wagner wrote: Quoting Tony Hosking : Yes, a C test can tell us if threads waiting on mutexes are able to receive pthread_kill signals. Could you add such a simple test program somewhere in m3tests or m3core/tests? We could also use that for a bug report to the OpenBSD developers (they won't like to install m3 to reproduce the error). Olaf On 21 Oct 2009, at 03:21, Olaf Wagner wrote: Quoting Jay K : Is it reasonable maybe to rewrite this test in C and see if it hangs? ie. see if maybe it is an OpenBSD bug? It doesn't hang with garbage collection turned off, so there must be some unhealthy interaction between that and the thread implementation. I don't think you will be able to narrow it down with a C test. 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 Oct 22 07:26:03 2009 From: jay.krell at cornell.edu (Jay K) Date: Thu, 22 Oct 2009 05:26:03 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: > It seems like we should have Mutex and RecursiveMutex, have either work with Condition Understood that Wait would have to assert that RecursiveMutex is only locked to depth 1 or somesuch. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Thu, 22 Oct 2009 05:21:28 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes > What are the Misc/misc calls? Trestle stuff. Search in m3-ui. It is in "Misc" that Juno calls .Signal(untilDone). Sometimes the entire "misc" call is skipped, or maybe occurs fewer times. That is when it hangs. I'm pretty sure. > The corruption comes outside of GC. It's just that the GC dicovers it. Agreed. > The only reason to have it in the CV is to achieve the optimization, > so you know to which mutex queue we should transfer the signalled/broadcast thread. Of course. I should have realized that. Um..the data is available anyway though, isn't it? The thread had to call wait(mutex, condition) in order for signal(condition) to unlink him from the condition's waiters, the waiting thread can store the mutex in itself (he can only be waiting on one condition variable at a time) and the signaling thread can grab that. I think. In either case, I'm not too inclined to touch it for this release until we are sure there is a bug, and that looks unlikely at this point. We could try putting back your BroadcastHeap change? It also seems a little gross that the heap lock is a special case recursive mutex. It seems like we should have Mutex and RecursiveMutex, have either work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just be wrappers around that. More generally we should probably try to embelish Thread.i3 with more primitives I think. At least "interlocked" and "once", if not "event" and "semaphore". "once" could definitely see a fair amount of use. The rest maybe not, maybe they are too primitive and hard to get good use out of, hard to define portably/efficiently. Or maybe LockHeap/UnlockHeap recursive support could/should be removed and just stick with Mutex and Condition and nothing else? Well, reader/writer locks are nice. The "Little Book of Semaphores" seems to suggest ideas like "turnstile", "rendevous" and maybe others, though I'm not sure they are actually easy to think about (I don't seem able to keep up with the author :( ), and possibly a generalization of reader/writer, like an n/m/o lock where you have x classes of code and different numbers of them are allowed to have the lock. Reader/writer is 2 classes with unlimited/1 access. There is a case of read/insert/delete that can scale a bit better than reader/writer. And maybe a "thread local" mechanism? - Jay CC: m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Juno/Thread/Win32 notes Date: Wed, 21 Oct 2009 21:56:21 -0400 On 21 Oct 2009, at 17:02, Jay K wrote: ThreadWin32.m3 almost exactly matches Birrel's design. The order of two unlocks is reversed. It probably doesn't matter. He says LockMutex/UnlockMutex are just P/V. Ours is a bit different. We have queueing on our locks which appears unncessary, but is maybe with in mind an optimization mentioned but now shown by Birrel -- that of Signal with a lock held transfering a thread right to the mutex's wait list. The queueing on mutexes does appear unnecessary, unless the optimization can be achieved. Birrel also has one mutex per condition variable but that seems to maybe be incidental and not architectural. The only reason to have it in the CV is to achieve the optimization, so you know to which mutex queue we should transfer the signalled/broadcast thread. I believe there is much room for performance improvement here, but if it is correct, it is ok for this release. As well, I believe lock/conditionvariables can be made to work in threads not created by the Modula-3 runtime, at least with a dependency on NT4 or Win2000 (QueueUserAPC to trigger alert). (owner = GetCurrentThreadId instead of T). Sure. I put in a bunch of RTIO in Juno. Whenever it hangs, the Signal call doesn't actually occur. We have to try to figure out why. It is something in the Misc/misc calls. What are the Misc/misc calls? So ThreadWin32.m3 is fairly well vindicated (except maybe via some roundabout fashion). The heap corruption is now fairly rare in Juno. I don't know if it is consistent or not. The contents are, not sure of the address. I'll debug more. My next idea..since I think the corruption involves copying a pixmap over other data, is to alter all pixmaps to be composed of specific data, see if that occurs in the corruption, to try to confirm this part of my theory. If that holds, then the memcpys done by gc could check for the pattern (actually they could check anyway, I thought I tried that already, will try again). The corruption comes outside of GC. It's just that the GC dicovers it. This should really be straightforward to catch, if you can make it occur deterministically. As well, with ThreadWin32.m3 having gotten some fixes, getting various timestamps of the source tree might be a good idea. With ThreadWin32.m3 fairly well vindicated, we might declare the quality is high enough asis. ? But I'd like to keep investigating. (Anyone else can?) The doubt imho is now more cast upon the Win32 Trestle code. We might even try Cygwin configured to use Win32 threads and X Windows and see if that has the same bug. Later.. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Thu Oct 22 20:19:30 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Thu, 22 Oct 2009 14:19:30 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: <5532FF75-842A-4341-9531-A321B0F56E17@cs.purdue.edu> On 22 Oct 2009, at 01:21, Jay K wrote: > > The only reason to have it in the CV is to achieve the > optimization, > > so you know to which mutex queue we should transfer the signalled/ > broadcast thread. > > > Of course. I should have realized that. > Um..the data is available anyway though, isn't it? > The thread had to call wait(mutex, condition) in order for > signal(condition) to unlink him from the condition's waiters, the > waiting thread can store the mutex in itself (he can only be waiting > on one condition variable at a time) and the signaling thread can > grab that. > I think. You may need to know which mutex to move the thread to upon alert. > In either case, I'm not too inclined to touch it for this release > until we are sure there is a bug, and that looks unlikely at this > point. We could try putting back your BroadcastHeap change? I don't think that is in any way broken. > It also seems a little gross that the heap lock is a special case > recursive mutex. > It seems like we should have Mutex and RecursiveMutex, have either > work with Condition, and have LockHeap/UnlockHeap/BroadcastHeap just > be wrappers around that. The heap lock cannot be an object allocated in the heap. > More generally we should probably try to embelish Thread.i3 with > more primitives I think. At least "interlocked" and "once", if not > "event" and "semaphore". > "once" could definitely see a fair amount of use. Yuck. Thread.i3 is a standard interface and should not change. Modula-3 has strong ideas about what thread primitives should be. > The rest maybe not, maybe they are too primitive and hard to get > good use out of, hard to define portably/efficiently. > > > Or maybe LockHeap/UnlockHeap recursive support could/should be > removed and just stick with Mutex and Condition and nothing else? Again. These are needed inside GC when one cannot touch heap objects. > > > Well, reader/writer locks are nice. ... -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:11:36 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:11:36 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Fri Oct 23 15:16:50 2009 From: jay.krell at cornell.edu (Jay K) Date: Fri, 23 Oct 2009 13:16:50 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: <90B0FD1B-C7BB-4AB1-B9A8-33639570B6B0@cs.purdue.edu> References: Message-ID: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:07:02 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:07:02 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:08:00 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:08:00 -0400 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: I don't think tweaking the heap parameters will help much. On 23 Oct 2009, at 09:11, Jay K wrote: > It's very intermittent, under 10% of runs crash or hang. I'm trying > to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc > edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz > ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime > \common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src > \runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime > \common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 > [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src > \runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src > \runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src > \runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ > 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src > \JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 > edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz > na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds: > 0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split > \DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split > \DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego > \ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split > \HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split > \ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split > \ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 > @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split > \TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext > \TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src > \FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src > \FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc > edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src > \runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime > \ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common > \RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 > @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt > \VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split > \BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split > \FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split > \ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt > \VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 > @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split > \HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split > \FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split > \HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt > \VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split > \HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split > \HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split > \HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt > \VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 > @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt > \VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ > 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common > \RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common > \RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common > \RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common > \RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime > \common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first > chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 > edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src > \runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src > \runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src > \runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils > \Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src > \FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src > \FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src > \FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src > \FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src > \FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src > \FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src > \FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src > \FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > - Jay > > > > [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Fri Oct 23 20:43:59 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext Message-ID: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 03:59:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 01:59:49 +0000 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext In-Reply-To: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> References: <20D085B0-1DA2-499C-9653-13ED8FF7EA5D@cs.purdue.edu> Message-ID: - sounds very good - no active target defaults to user threads The "closest" is FreeBSD 4.x. I mean, you know, that is the only one anyone here has expressed a recent desire to use, and used it and it was made to work. He can locally edit m3makefile. - I don't know of any significant platform without pthreads except NT and hypothetical DJGPP (Linux 2.4 mentioned below) - The following I know don't have make/get/set/swapcontext: any version of Cygwin, and I suspect not worth worrying about any version of NT, and I suspect not worth worrying about I don't think fibers are viable but maybe. Fibers don't interact propertly with any locking construct except Interlocked. e.g. critical sections nor any kernel object "work". Win7 has "user mode scheduling" that addresses problems with fibers but I think only on 64bit? any version of OpenBSD Darwin <=10.4; I synthesized them for PowerPC/10.4; you might try that (I found the PowerPC compat on x86 to be not very good though, maybe that was debugging only). - I think HP-UX manpage has strong warnings about these functions, being very version specific/fragile or something. But HP-UX has pthreads. - old Linux 2.4 still seems to be in somewhat active use, in specialized areas -- my router and a networked hard drive I have; pthreads is there I think, but not NPTL. I wonder if we should have I386_FREEBSD_USERTHREADS I386_LINUX_USERTHREADS SPARC_SOLARIS_USERTHREADS? and give them decent test/Hudson/release coverage? Maybe I386_FREEBSD4_USERTHREADS I386_LINUX24_USERTHREADS To "ghettoize" them via naming only, though they'd actually work and be tested on current systems? That is, you know, make userthreads work a bunch, be more portable, maintainable, great, then what? They still sit unused/unbuilt/untested? How to fix that? At least built/testet? Maybe just with cm3 -D thing, don't release them, just build/test them regularly? > The advantage of this move will be to eliminate a large swath of "cloned" Good! Specific questions about specific platforms ask me? You can see the answer is kind of backwards -- notice how every platform I have introduced I didn't add user threads support for. Question is only then for old/dead/unused/dormant platforms, and most of them DO have pthreads these days. I have a few machines not setup or not powered on -- Irix (32bit and 64bit in one) and AIX (32bit and 64bit in one) and HP-UX/HPPA (32bit and 64bit in one), Linux/IA64 specifically are powered off. VMS/Alpha, VMS/IA64 HP-UX/IA64, Tru64 I haven't gotten up and running yet, but I think they all support pthreads a long time now so no big worry. I also don't have have Linux/PPC64 or Darwin/PPC64 capability yet. (I think after this release Linux/IA64 should be done and will require a small change -- it has "two stacks" to scan.) > but don't have easy access to existing ABIs for other targets Please try the ssh commands I sent? That'll give you OpenBSD. FreeBSD maybe but I think it is off. I can provide more but for purposes of this line of questioning doesn't seem criticla. Birch gives you Linux/AMD64 and, in (slow/VM) a fashion NT and maybe Cygwin. - Jay From: hosking at cs.purdue.edu To: m3devel at elegosoft.com Date: Fri, 23 Oct 2009 14:43:59 -0400 Subject: [M3devel] User-level threads using makecontext/getcontext/swapcontext I have a (slightly rough) derivative version of ThreadPosix working on I386_DARWIN (implemented more along the lines of the current ThreadPThread) which abstracts all the nasty C-isms into ThreadPosixC.c. I would like to propose that this become our updated user-level threads implementation to complement ThreadPThread and ThreadWin32, but doing so will require reworking the C code for the other targets. My question is the following: which targets currently default to ThreadPosix (instead of ThreadPThread)? Do those targets all have makecontext/getcontext/swapcontext (or equivalents that might be simulated with setjmp/longjmp)? I can make the effort to ensure things work for SOLgnu/SOLsun, *_DARWIN, LINUXLIBC6, but don't have easy access to existing ABIs for other targets. Can someone else do that? The advantage of this move will be to eliminate a large swath of "cloned" RTMachine and RTThread implementations and simplify porting. If we are in agreement on this then I can begin to tidy up and commit my changes. The advantage of retaining the user-level threads code is its benefit as a live reference implementation of the Modula-3 thread semantics. 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:19:07 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:19:07 +0000 Subject: [M3devel] Juno/Thread/Win32 notes In-Reply-To: References: Message-ID: VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 24 16:39:49 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 24 Oct 2009 14:39:49 +0000 Subject: [M3devel] mentor/win32 Message-ID: Well mentor at least crashes consistently, in head. 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000 fld dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ 131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Sat Oct 24 16:53:28 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Sat, 24 Oct 2009 14:53:28 +0000 (GMT) Subject: [M3devel] mentor/win32 In-Reply-To: Message-ID: <959278.61051.qm@web23603.mail.ird.yahoo.com> Hi: Does it show a runtime error message. can you get one? in which module is nil dereferencing? could you compare what is the difference when the system uses the gcc backend?? Thanks in advance. --- El s?b, 24/10/09, Jay K wrote: De: Jay K Asunto: [M3devel] mentor/win32 Para: "m3devel" Fecha: s?bado, 24 octubre, 2009 9:39 Well mentor at least crashes consistently, in head. ? 0:012> .lastevent Last event: efc.1240: Access violation - code c0000005 (first chance) ? debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) 0:012> u . l1 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WIN32\ScrollerVBTCla ss.m3 @ 167]: 01181634 d94000????????? fld???? dword ptr [eax] 0:012> r eax eax=0000000c 0:012> k ChildEBP RetAddr 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego\WI N32\ScrollerVBTClass.m3 @ 167] 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego\ViewportVBT. m3 @ 409] 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego\ViewportVBT.m3 @ ?131] 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src\FormsVBT.m3 @ 223 2] 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src\FormsVBT.m3 @ 948] 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3 671] 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 0318ffec 00000000 kernel32!BaseThreadStart+0x37 0:012> Should be easy to figure out given the consistency. It is a null deref, offset. ?- Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 24 19:15:36 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 24 Oct 2009 13:15:36 -0400 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <17380155-97E5-4813-BEAC-0D5A6C7B2602@cs.purdue.edu> This is only on Windows. On 24 Oct 2009, at 10:53, Daniel Alejandro Benavides D. wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 03:06:45 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Sat, 24 Oct 2009 19:06:45 -0700 Subject: [M3devel] mentor/win32 In-Reply-To: <959278.61051.qm@web23603.mail.ird.yahoo.com> References: <959278.61051.qm@web23603.mail.ird.yahoo.com> Message-ID: <6DBB0337-EF2E-403B-918E-2A5D4490F904@hotmail.com> This is during startup. I figured I'd see if other GUI apps crash like Juno but more consistently. - Jay (phone) On Oct 24, 2009, at 7:53 AM, "Daniel Alejandro Benavides D." wrote: > Hi: > Does it show a runtime error message. can you get one? in which > module is nil dereferencing? could you compare what is the > difference when the system uses the gcc backend? > Thanks in advance. > --- El s?b, 24/10/09, Jay K wrote: > > De: Jay K > Asunto: [M3devel] mentor/win32 > Para: "m3devel" > Fecha: s?bado, 24 octubre, 2009 9:39 > > Well mentor at least crashes consistently, in head. > > 0:012> .lastevent > Last event: efc.1240: Access violation - code c0000005 (first chance) > debugger time: Sat Oct 24 07:38:32.609 2009 (GMT-7) > 0:012> u . l1 > m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [..\src\lego > \WIN32\ScrollerVBTCla > ss.m3 @ 167]: > 01181634 d94000 fld dword ptr [eax] > 0:012> r eax > eax=0000000c > 0:012> k > ChildEBP RetAddr > 0318f720 011b94e8 m3vbtkit!ScrollerVBTClass__GetAttributes+0x179 [.. > \src\lego\WI > N32\ScrollerVBTClass.m3 @ 167] > 0318f7f8 011b754e m3vbtkit!ViewportVBT__AddView+0x101e [..\src\lego > \ViewportVBT. > m3 @ 409] > 0318f844 01124fc7 m3vbtkit!ViewportVBT__Init+0x30e [..\src\lego > \ViewportVBT.m3 @ > 131] > 0318f964 011134b1 m3formsvbt!FormsVBT__pViewport+0x512 [..\src > \FormsVBT.m3 @ 223 > 2] > 0318f9c4 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318f9f0 01117520 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318faf8 011134b1 m3formsvbt!FormsVBT__pShape+0x19c [..\src > \FormsVBT.m3 @ 948] > 0318fb58 0113107a m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fb84 011157d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src > \FormsVBT.m3 @ 3642] > 0318fc80 011134b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src > \FormsVBT.m3 @ 782] > 0318fce0 011313aa m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318fd30 0111c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src > \FormsVBT.m3 @ 3 > 671] > 0318fe14 0111c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src > \FormsVBT.m3 @ 1372] > 0318fe40 011134b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src > \FormsVBT.m3 @ 1353] > 0318fea0 01111dab m3formsvbt!FormsVBT__Item+0x48b [..\src > \FormsVBT.m3 @ 250] > 0318ff4c 007bac76 m3formsvbt!FormsVBT__Apply+0xa3 [..\src > \FormsVBT.m3 @ 84] > 0318ff8c 007baa96 m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 0318ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 0318ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:012> > > > Should be easy to figure out given the consistency. > It is a null deref, offset. > > - Jay > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 11:49:39 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 10:49:39 +0000 Subject: [M3devel] map SIGBUS to SegV? Message-ID: I just noticed..it appears that some ports historically catch SIGBUS and call SegV, and some don't install a handler for it. e.g. it looks like the Darwin platforms do this. In my porting of the signal handling code to C, I foisted this behavior on all platforms. Reasonable? Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. I think it is probably ok asis, or maybe even an improvement. - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sun Oct 25 12:55:42 2009 From: jay.krell at cornell.edu (Jay K) Date: Sun, 25 Oct 2009 11:55:42 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sun Oct 25 18:51:45 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sun, 25 Oct 2009 13:51:45 -0400 Subject: [M3devel] map SIGBUS to SegV? In-Reply-To: References: Message-ID: <7052E471-5164-49A2-9067-AE73BD777481@cs.purdue.edu> Good question. I'm not sure what the different OSs do. Does anyone else have an opinion? On 25 Oct 2009, at 06:49, Jay K wrote: > I just noticed..it appears that some ports historically catch SIGBUS > and call SegV, and some don't install a handler for it. > e.g. it looks like the Darwin platforms do this. > In my porting of the signal handling code to C, I foisted this > behavior on all platforms. > Reasonable? > Otherwise we could put #ifdef __APPLE__ around SIGBUS in RTSignalC.c. > I think it is probably ok asis, or maybe even an improvement. > > - Jay > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:43:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:43:29 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 03:45:57 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 02:45:57 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 04:26:46 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 03:26:46 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: full disclosure: This version has the bug where non-standalone NT apps don't do set operations correctly. (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) I'll retest with standalone. If that survives hundreds of iterations I can go forward gradually and find when things broke. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Mon, 26 Oct 2009 02:45:57 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) I should show all thread stacks, threads 0 and 6 seem to be in nearby code. 0:000> ~*k . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0510feb0 7c802455 ntdll!KiFastSystemCallRet 0510fec0 00391ebd kernel32!Sleep+0xf 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0520fd38 7c802542 ntdll!KiFastSystemCallRet 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] 0520fe30 7e418816 USER32!GetDC+0x6d 0520fe98 7e4189cd USER32!GetDC+0x14f 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 0520ff08 0071cbde USER32!DispatchMessageA+0xf 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0530feb8 7c802542 ntdll!KiFastSystemCallRet 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0540fed4 7c802455 ntdll!KiFastSystemCallRet 0540fee4 00391ebd kernel32!Sleep+0xf 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 9] 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0550f87c 7c9010fd ntdll!KiFastSystemCallRet 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 0] 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 0] 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0582ff70 7c802542 ntdll!KiFastSystemCallRet 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0592fee0 7c802542 ntdll!KiFastSystemCallRet 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba 0:000> - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Date: Mon, 26 Oct 2009 02:43:29 +0000 I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. (1374.1548): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sun, 25 Oct 2009 11:55:42 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) (a70.158c): Access violation - code c0000005 (first chance) m3ui!VBT__Capture+0x36: 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl l.dll - ChildEBP RetAddr 0012ea74 00757a61 m3ui!VBT__Capture+0x36 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 0:000> I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu Date: Sat, 24 Oct 2009 14:19:07 +0000 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. quick experiment: #include #include int main() { printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); return 0; } => 00350000 00360000 00370000 - Jay From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Date: Fri, 23 Oct 2009 14:07:02 -0400 CC: m3devel at elegosoft.com Subject: Re: [M3devel] Juno/Thread/Win32 notes Should not be a problem. Does valloc restrict you to 64K pages? On 23 Oct 2009, at 09:16, Jay K wrote: Tony, a few months ago I changed the NT pagesize to 64K, so I could simply allocate with VirtualAlloc, and not waste any. You think that could be a problem? Most platforms use 8K. This used to have to relate to the hardware, when there was VM-synchronized GC, but no longer. Also I just hit control-c and: *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... We've discussed before that things are not control-c safe. Maybe related??? - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu CC: m3devel at elegosoft.com Subject: RE: [M3devel] Juno/Thread/Win32 notes Date: Fri, 23 Oct 2009 13:11:36 +0000 It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. I've also grown stacks to rule that out. Here are some of the crashes. (adc.f8): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll m3core!RTCollector__Move+0x51: 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? 0:000> r esi esi=001ffffc 0:000> k ChildEBP RetAddr 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL (1d8.148): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll m3ui!VBT__Capture+0x36: 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? 0:000> r esi esi=00000000 0:000> .lines Line number information will be loaded 0:000> k 999 ChildEBP RetAddr 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 0:000> *** *** runtime error: *** Exception "VBTClass.FatalError" not in RAISES list *** file "..\src\vbt\VBTClass.m3", line 935 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 ......... ......... ... more frames ... (10d4.13f8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k99 ChildEBP RetAddr 034bf1b0 005e6067 ntdll!DbgBreakPoint 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 034bffec 00000000 kernel32!BaseThreadStart+0x37 0:007> *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1666 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 ......... ......... ... more frames ... (13c8.17a4): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:007> .lines 0:007> k999 ChildEBP RetAddr 0290eb14 005e6067 ntdll!DbgBreakPoint 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] 0290ffec 00000000 kernel32!BaseThreadStart+0x37 0:007> - Jay [snip] -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 08:02:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 07:02:10 +0000 Subject: [M3devel] gdb help -- looping until crash? Message-ID: On Windows I use: type \cm3\bin\j.cmd @echo off setlocal set a=1 :loop echo %a% \bin\x86\cdb -g -G Juno.exe @M3no-trestle-await-delete @M3paranoidgc set /a a=a + 1 goto :loop this runs Juno in a loop, in a debugger, until it hits an access violation. It prints how many times it has run before each run. -g means go right away at the start of the process -G means go past the end of the process set /a is for "arithmetic" (expression evaluation) What is the equivalent with gdb/sh? I've search the web some but haven't found it yet. Thanks, - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 09:03:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:03:06 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? Message-ID: Can anyone explain this? DblBufferVBT.m3 PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; from: VBT.T; delta := Point.Origin; wait := TRUE) = <* LL.sup < to *> VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); VBT.m3: PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): ScrnPixmap.T RAISES {} = VAR bad: Region.T; BEGIN LOCK v DO from is passed uninitialized to Capture. The code appears the same in head, 5.2.6, 3.6. I do hit the LOCK v in Capture if I run Juno sufficient times on NT. Maybe from should be Child() or ch? I'll try that. - Jay From jay.krell at cornell.edu Mon Oct 26 09:10:28 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 08:10:28 +0000 Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? In-Reply-To: References: Message-ID: sorry I'm an idiot, the wordwrap confused me into seeing "VAR" where it wasn't. Still, to is sometimes NIL. - Jay ---------------------------------------- > From: jay.krell at cornell.edu > To: m3devel at elegosoft.com > Date: Mon, 26 Oct 2009 08:03:06 +0000 > Subject: [M3devel] use of uninitialized local in PaintVBTtoVBT?? > > > Can anyone explain this? > > DblBufferVBT.m3 > > PROCEDURE PaintVBTtoVBT(to: VBT.T; clip: Rect.T; > from: VBT.T; delta := Point.Origin; wait := TRUE) = > <* LL.sup < to *> > VAR dummy: Region.T; pixmap: ScrnPixmap.T; BEGIN > pixmap := VBT.Capture(from, Rect.Sub(clip, delta), (*OUT*) dummy); > > VBT.m3: > > PROCEDURE Capture (v: T; READONLY clip: Rect.T; VAR (*out*) br: Region.T): > ScrnPixmap.T RAISES {} = > VAR bad: Region.T; > BEGIN > LOCK v DO > > from is passed uninitialized to Capture. > The code appears the same in head, 5.2.6, 3.6. > I do hit the LOCK v in Capture if I run Juno sufficient times on NT. > Maybe from should be Child() or ch? > I'll try that. > > > - Jay From wagner at elegosoft.com Mon Oct 26 10:35:08 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 10:35:08 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> Hi again, I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month, so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so, what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again, is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : > On 21 Oct 2009, at 20:12, Jay K wrote: > >> ps: notice: >> >>>> resumed system calls will return an error value of EINTR > > Not a problem. We already cope with that in ThreadPThread. > >> We probably need to handle that in a bunch of places. >> But some things like read/write will return just having done a >> partial read/write? > > Huh? Should already be done? > >> Maybe something more cooperative would be easier? >> Or even user threads?? >> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >> on some OpenBSD platforms, like ppc/x86. > > These are available for OpenBSD already. Not sure why you synthesized. > >> >> - Jay >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 21:07:09 +0000 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Not sure how the formatting will come through..but yes. >> Hopefully on all processor architectures. >> >> >> "np" means "not portable", ok >> >> >> http://www.openbsd.org/cgi-bin/man.cgi >> >> appropos suspend >> >> http://www.openbsd.org/cgi-bin/man.cgi?query=pthread_resume_all_np&sektion=3&apropos=0&manpath=OpenBSD+Current&arch=i386 >> >> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >> PTHREAD_SUSPEND_NP(3) >> >> NAME >> pthread_suspend_np, pthread_suspend_all_np, pthread_resume_np, >> pthread_resume_all_np - suspend and resume thread(s) >> >> SYNOPSIS >> #include >> #include >> >> int >> pthread_suspend_np(pthread_t thread); >> >> void >> pthread_suspend_all_np(void); >> >> int >> pthread_resume_np(pthread_t thread); >> >> void >> pthread_resume_all_np(void); >> >> DESCRIPTION >> The pthread_suspend_np() function interrupts the given thread >> and places >> it in a suspended state. >> >> The pthread_suspend_all_np() function interrupts all threads except the >> current thread and places them in a suspended state. >> >> The pthread_resume_np() function resumes a thread suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_all_np() function resumes all threads suspended with >> pthread_suspend_np() or pthread_suspend_all_np(). >> >> The pthread_resume_np() and pthread_resume_all_np() functions >> have no ef- >> fect on threads that have not been suspended. >> >> Suspending and resuming a thread has an effect similar to that >> of receiv- >> ing a signal, namely that resumed system calls will return an >> error value >> of EINTR. >> >> RETURN VALUES >> The pthread_suspend_np() and pthread_resume_np() functions fail if: >> >> [ESRCH] No thread could be found corresponding to that >> specified by >> the given thread ID. >> >> The pthread_suspend_np() function fails if: >> >> [EDEADLK] Attempt to suspend the current thread. >> >> SEE ALSO >> pthread_cancel(3), pthreads(3) >> >> STANDARDS >> The pthread_suspend_np(), pthread_suspend_all_np(), pthread_resume_np() >> and pthread_resume_all_np() functions are non-portable and may not be >> supported with the above semantics on other POSIX systems. >> >> OpenBSD 4.5 May 31, 2007 >> 1 >> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >> >> - Jay >> >> >> From: jay.krell at cornell.edu >> To: wagner at elegosoft.com >> Date: Wed, 21 Oct 2009 13:02:26 -0700 >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> OpenBSD has good documentation.. (man pages) >> >> - Jay (phone) >> >> On Oct 21, 2009, at 11:05 AM, Olaf Wagner wrote: >> >> Stefan, >> >> you are our OpenBSD fan, aren't you? Can you answer this? >> >> Olaf >> >> ----- Forwarded message from hosking at cs.purdue.edu ----- >> Date: Wed, 21 Oct 2009 12:06:12 -0400 >> From: Tony Hosking >> Reply-To: Tony Hosking >> Subject: Re: [M3devel] Status of threads for RC4? >> To: Olaf Wagner >> Cc: Jay K , m3devel >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, pthread_resume? >> If so then we could work avoid the signals entirely (as we do on OS >> X). All that is needed is implementation of RTMachine.SuspendThread, >> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> >> >> ----- End forwarded message ----- >> >> >> -- >> 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 >> >> This is a known problem for the user-level pthreads on OpenBSD. >> >> Quick question: does OpenBSD support pthread_suspend, >> pthread_resume? If so then we could work avoid the signals entirely >> (as we do on OS X). All that is needed is implementation of >> RTMachine.SuspendThread, RTMachine.ResumeThread and >> RTMachine.GetState for OpenBSD targets. >> >> On 21 Oct 2009, at 10:04, Olaf Wagner wrote: >> >> Quoting Tony Hosking : >> >> Yes, a C test can tell us if threads waiting on mutexes are able to >> receive pthread_kill signals. >> >> Could you add such a simple test program somewhere in m3tests or >> m3core/tests? We could also use that for a bug report to the >> OpenBSD developers (they won't like to install m3 to reproduce >> the error). >> >> Olaf >> >> On 21 Oct 2009, at 03:21, Olaf Wagner wrote: >> >> Quoting Jay K : >> >> Is it reasonable maybe to rewrite this test in C and see if it hangs? >> >> ie. see if maybe it is an OpenBSD bug? >> >> It doesn't hang with garbage collection turned off, so there must be >> some unhealthy interaction between that and the thread implementation. >> I don't think you will be able to narrow it down with a C test. >> >> 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 >> >> >> -- 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 Mon Oct 26 10:41:18 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:41:18 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026103508.pzhjoihy8k480oog@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026103508.pzhjoihy8k480oog at mail.elegosoft.com> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 WIndows threads are ok. OpenBSD are not currently=2C never have been. Windows problems are probably in Trestle. Have been for many years apparently. =20 - Jay ---------------------------------------- > Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > From: wagner at elegosoft.com > To: hosking at cs.purdue.edu > CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Hi again=2C > > I'm still uncertain regarding the thread status. Hudson hasn't built > anything for about a month=2C so there have been no check-ins to the > release branch. > > (1) Has the OpenBSD problem been fixed or worked around? > If so=2C what are the relevant changes that should me merged from > trunk? > > The ChangeLog shows a lot of commits on head... > > (2) Is there still a problem in Windows threads? > Or are we just chasing a general access violation due to an > unknown reason? > > Again=2C is this ongoing or should some changes be merged for > the release? > > Olaf > > Quoting Tony Hosking : > >> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >> >>> ps: notice: >>> >>>>> resumed system calls will return an error value of EINTR >> >> Not a problem. We already cope with that in ThreadPThread. >> >>> We probably need to handle that in a bunch of places. >>> But some things like read/write will return just having done a >>> partial read/write? >> >> Huh? Should already be done? >> >>> Maybe something more cooperative would be easier? >>> Or even user threads?? >>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>> on some OpenBSD platforms=2C like ppc/x86. >> >> These are available for OpenBSD already. Not sure why you synthesized. >> >>> >>> - Jay >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Not sure how the formatting will come through..but yes. >>> Hopefully on all processor architectures. >>> >>> >>> "np" means "not portable"=2C ok >>> >>> >>> http://www.openbsd.org/cgi-bin/man.cgi >>> >>> appropos suspend >>> >>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>> >>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>> PTHREAD_SUSPEND_NP(3) >>> >>> NAME >>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>> pthread_resume_all_np - suspend and resume thread(s) >>> >>> SYNOPSIS >>> #include=20 >>> #include=20 >>> >>> int >>> pthread_suspend_np(pthread_t thread)=3B >>> >>> void >>> pthread_suspend_all_np(void)=3B >>> >>> int >>> pthread_resume_np(pthread_t thread)=3B >>> >>> void >>> pthread_resume_all_np(void)=3B >>> >>> DESCRIPTION >>> The pthread_suspend_np() function interrupts the given thread >>> and places >>> it in a suspended state. >>> >>> The pthread_suspend_all_np() function interrupts all threads except the >>> current thread and places them in a suspended state. >>> >>> The pthread_resume_np() function resumes a thread suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_all_np() function resumes all threads suspended with >>> pthread_suspend_np() or pthread_suspend_all_np(). >>> >>> The pthread_resume_np() and pthread_resume_all_np() functions >>> have no ef- >>> fect on threads that have not been suspended. >>> >>> Suspending and resuming a thread has an effect similar to that >>> of receiv- >>> ing a signal=2C namely that resumed system calls will return an >>> error value >>> of EINTR. >>> >>> RETURN VALUES >>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>> >>> [ESRCH] No thread could be found corresponding to that >>> specified by >>> the given thread ID. >>> >>> The pthread_suspend_np() function fails if: >>> >>> [EDEADLK] Attempt to suspend the current thread. >>> >>> SEE ALSO >>> pthread_cancel(3)=2C pthreads(3) >>> >>> STANDARDS >>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= np() >>> and pthread_resume_all_np() functions are non-portable and may not be >>> supported with the above semantics on other POSIX systems. >>> >>> OpenBSD 4.5 May 31=2C 2007 >>> 1 >>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>> >>> - Jay >>> >>> >>> From: jay.krell at cornell.edu >>> To: wagner at elegosoft.com >>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> OpenBSD has good documentation.. (man pages) >>> >>> - Jay (phone) >>> >>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>> >>> Stefan=2C >>> >>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>> >>> Olaf >>> >>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>> From: Tony Hosking=20 >>> Reply-To: Tony Hosking=20 >>> Subject: Re: [M3devel] Status of threads for RC4? >>> To: Olaf Wagner=20 >>> Cc: Jay K =2C m3devel=20 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>> If so then we could work avoid the signals entirely (as we do on OS >>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> ----- End forwarded message ----- >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> This is a known problem for the user-level pthreads on OpenBSD. >>> >>> Quick question: does OpenBSD support pthread_suspend=2C >>> pthread_resume? If so then we could work avoid the signals entirely >>> (as we do on OS X). All that is needed is implementation of >>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>> RTMachine.GetState for OpenBSD targets. >>> >>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>> >>> Quoting Tony Hosking : >>> >>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>> receive pthread_kill signals. >>> >>> Could you add such a simple test program somewhere in m3tests or >>> m3core/tests? We could also use that for a bug report to the >>> OpenBSD developers (they won't like to install m3 to reproduce >>> the error). >>> >>> Olaf >>> >>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>> >>> Quoting Jay K : >>> >>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>> >>> ie. see if maybe it is an OpenBSD bug? >>> >>> It doesn't hang with garbage collection turned off=2C so there must be >>> some unhealthy interaction between that and the thread implementation. >>> I don't think you will be able to narrow it down with a C test. >>> >>> Olaf >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> >>> >>> -- >>> Olaf Wagner -- elego Software Solutions GmbH >>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= lin >>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>> DE163214194 >>> >>> >>> > > > > -- > Olaf Wagner -- elego Software Solutions GmbH > Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= 5 > http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= n > Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= 194 > = From jay.krell at cornell.edu Mon Oct 26 10:46:06 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 09:46:06 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Here's a better view of the problem, again in 5.2.6. Notice 00e15888 repeating in both threads' parameters. This seems like a simple "add a lock use somewhere" problem but I have little idea of Trestle's locking protocols, apparently a complicated topic. You know, somehow redisplay/reshape need more serialization, but I don't know exactly what. The call to Capture fails with a dereference of NIL in the LOCK use. The unusual part I think is: 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] That's probably not how Redisplay is normally used? I'll look again at head and see if the behavior resembles 5.2.6. 0:000> .logopen c:\2.log Opened log file 'c:\2.log' 0:000> ~*kv99 . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr Args to Child 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff WARNING: Stack unwind information not available. Following frames may be wrong. 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong. 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba - Jay ________________________________ > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > full disclosure: > This version has the bug where non-standalone NT apps don't do set operations correctly. > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > I'll retest with standalone. > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Mon, 26 Oct 2009 02:45:57 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > 0:000> ~*k > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > 0510fec0 00391ebd kernel32!Sleep+0xf > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > 0520fe30 7e418816 USER32!GetDC+0x6d > 0520fe98 7e4189cd USER32!GetDC+0x14f > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > 0540fee4 00391ebd kernel32!Sleep+0xf > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > 9] > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > 0] > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > 0] > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > ChildEBP RetAddr > WARNING: Stack unwind information not available. Following frames may be wrong. > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > 0:000> > > > - Jay > > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > (1374.1548): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sun, 25 Oct 2009 11:55:42 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > (a70.158c): Access violation - code c0000005 (first chance) > m3ui!VBT__Capture+0x36: > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> k > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > l.dll - > ChildEBP RetAddr > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > 0:000> > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > - Jay > > > > > ________________________________ > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > Date: Sat, 24 Oct 2009 14:19:07 +0000 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > quick experiment: > #include > #include > int main() > { > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > return 0; > } > > => > 00350000 > 00360000 > 00370000 > > - Jay > > > ________________________________ > > From: hosking at cs.purdue.edu > To: jay.krell at cornell.edu > Date: Fri, 23 Oct 2009 14:07:02 -0400 > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > Tony, a few months ago I changed the NT pagesize to 64K, > so I could simply allocate with VirtualAlloc, and not waste any. > You think that could be a problem? > Most platforms use 8K. > This used to have to relate to the hardware, when there > was VM-synchronized GC, but no longer. > > Also I just hit control-c and: > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > > > We've discussed before that things are not control-c safe. > Maybe related??? > > > - Jay > > > > > > ________________________________ > > > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > I've also grown stacks to rule that out. > Here are some of the crashes. > > > > (adc.f8): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > m3core!RTCollector__Move+0x51: > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > 0:000> r esi > esi=001ffffc > 0:000> k > ChildEBP RetAddr > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > (1d8.148): Access violation - code c0000005 (first chance) > First chance exceptions are reported before any exception handling. > This exception may be expected and handled. > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > m3ui!VBT__Capture+0x36: > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > 0:000> r esi > esi=00000000 > 0:000> .lines > Line number information will be loaded > 0:000> k 999 > ChildEBP RetAddr > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 0:000> > > > > *** > *** runtime error: > *** Exception "VBTClass.FatalError" not in RAISES list > *** file "..\src\vbt\VBTClass.m3", line 935 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > ......... ......... ... more frames ... > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k99 > ChildEBP RetAddr > 034bf1b0 005e6067 ntdll!DbgBreakPoint > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > > > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > ......... ......... ... more frames ... > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:007> .lines > 0:007> k999 > ChildEBP RetAddr > 0290eb14 005e6067 ntdll!DbgBreakPoint > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:007> > > > - Jay > > > > [snip] > From wagner at elegosoft.com Mon Oct 26 13:49:24 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Mon, 26 Oct 2009 13:49:24 +0100 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> Quoting Jay K : > WIndows threads are ok. In the release branch, too? > OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? > Windows problems are probably in Trestle. > Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf > =20 > - Jay > > ---------------------------------------- >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >> From: wagner at elegosoft.com >> To: hosking at cs.purdue.edu >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Hi again=2C >> >> I'm still uncertain regarding the thread status. Hudson hasn't built >> anything for about a month=2C so there have been no check-ins to the >> release branch. >> >> (1) Has the OpenBSD problem been fixed or worked around? >> If so=2C what are the relevant changes that should me merged from >> trunk? >> >> The ChangeLog shows a lot of commits on head... >> >> (2) Is there still a problem in Windows threads? >> Or are we just chasing a general access violation due to an >> unknown reason? >> >> Again=2C is this ongoing or should some changes be merged for >> the release? >> >> Olaf >> >> Quoting Tony Hosking : >> >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>> >>>> ps: notice: >>>> >>>>>> resumed system calls will return an error value of EINTR >>> >>> Not a problem. We already cope with that in ThreadPThread. >>> >>>> We probably need to handle that in a bunch of places. >>>> But some things like read/write will return just having done a >>>> partial read/write? >>> >>> Huh? Should already be done? >>> >>>> Maybe something more cooperative would be easier? >>>> Or even user threads?? >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp >>>> on some OpenBSD platforms=2C like ppc/x86. >>> >>> These are available for OpenBSD already. Not sure why you synthesized. >>> >>>> >>>> - Jay >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Not sure how the formatting will come through..but yes. >>>> Hopefully on all processor architectures. >>>> >>>> >>>> "np" means "not portable"=2C ok >>>> >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi >>>> >>>> appropos suspend >>>> >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 >>>> >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual >>>> PTHREAD_SUSPEND_NP(3) >>>> >>>> NAME >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C >>>> pthread_resume_all_np - suspend and resume thread(s) >>>> >>>> SYNOPSIS >>>> #include=20 >>>> #include=20 >>>> >>>> int >>>> pthread_suspend_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_suspend_all_np(void)=3B >>>> >>>> int >>>> pthread_resume_np(pthread_t thread)=3B >>>> >>>> void >>>> pthread_resume_all_np(void)=3B >>>> >>>> DESCRIPTION >>>> The pthread_suspend_np() function interrupts the given thread >>>> and places >>>> it in a suspended state. >>>> >>>> The pthread_suspend_all_np() function interrupts all threads except the >>>> current thread and places them in a suspended state. >>>> >>>> The pthread_resume_np() function resumes a thread suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_all_np() function resumes all threads suspended with >>>> pthread_suspend_np() or pthread_suspend_all_np(). >>>> >>>> The pthread_resume_np() and pthread_resume_all_np() functions >>>> have no ef- >>>> fect on threads that have not been suspended. >>>> >>>> Suspending and resuming a thread has an effect similar to that >>>> of receiv- >>>> ing a signal=2C namely that resumed system calls will return an >>>> error value >>>> of EINTR. >>>> >>>> RETURN VALUES >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: >>>> >>>> [ESRCH] No thread could be found corresponding to that >>>> specified by >>>> the given thread ID. >>>> >>>> The pthread_suspend_np() function fails if: >>>> >>>> [EDEADLK] Attempt to suspend the current thread. >>>> >>>> SEE ALSO >>>> pthread_cancel(3)=2C pthreads(3) >>>> >>>> STANDARDS >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > np() >>>> and pthread_resume_all_np() functions are non-portable and may not be >>>> supported with the above semantics on other POSIX systems. >>>> >>>> OpenBSD 4.5 May 31=2C 2007 >>>> 1 >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS >>>> >>>> - Jay >>>> >>>> >>>> From: jay.krell at cornell.edu >>>> To: wagner at elegosoft.com >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 >>>> CC: m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> OpenBSD has good documentation.. (man pages) >>>> >>>> - Jay (phone) >>>> >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: >>>> >>>> Stefan=2C >>>> >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? >>>> >>>> Olaf >>>> >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 >>>> From: Tony Hosking=20 >>>> Reply-To: Tony Hosking=20 >>>> Subject: Re: [M3devel] Status of threads for RC4? >>>> To: Olaf Wagner=20 >>>> Cc: Jay K =2C m3devel=20 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? >>>> If so then we could work avoid the signals entirely (as we do on OS >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> ----- End forwarded message ----- >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> This is a known problem for the user-level pthreads on OpenBSD. >>>> >>>> Quick question: does OpenBSD support pthread_suspend=2C >>>> pthread_resume? If so then we could work avoid the signals entirely >>>> (as we do on OS X). All that is needed is implementation of >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and >>>> RTMachine.GetState for OpenBSD targets. >>>> >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: >>>> >>>> Quoting Tony Hosking : >>>> >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to >>>> receive pthread_kill signals. >>>> >>>> Could you add such a simple test program somewhere in m3tests or >>>> m3core/tests? We could also use that for a bug report to the >>>> OpenBSD developers (they won't like to install m3 to reproduce >>>> the error). >>>> >>>> Olaf >>>> >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: >>>> >>>> Quoting Jay K : >>>> >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? >>>> >>>> ie. see if maybe it is an OpenBSD bug? >>>> >>>> It doesn't hang with garbage collection turned off=2C so there must be >>>> some unhealthy interaction between that and the thread implementation. >>>> I don't think you will be able to narrow it down with a C test. >>>> >>>> Olaf >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >>>> >>>> -- >>>> Olaf Wagner -- elego Software Solutions GmbH >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > lin >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: >>>> DE163214194 >>>> >>>> >>>> >> >> >> >> -- >> Olaf Wagner -- elego Software Solutions GmbH >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > 5 >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > n >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > 194 >> = > -- 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 Mon Oct 26 15:01:10 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:01:10 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: <20091026134924.riy1xnrpc080k0wg@mail.elegosoft.com> References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay > Date: Mon, 26 Oct 2009 13:49:24 +0100 > From: wagner at elegosoft.com > To: jay.krell at cornell.edu > CC: m3devel at elegosoft.com > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > Quoting Jay K : > > > WIndows threads are ok. > In the release branch, too? > > > OpenBSD are not currently=2C never have been. > Do we have a work-around or are we going to ignore this for the release? > > > Windows problems are probably in Trestle. > > Have been for many years apparently. > Do we wait for a fix here for RC4? > > I can see that you and Tony are quite busy, but there are no visible > changes for the release status. > > Olaf > > > =20 > > - Jay > > > > ---------------------------------------- > >> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 > >> From: wagner at elegosoft.com > >> To: hosking at cs.purdue.edu > >> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com > >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >> > >> Hi again=2C > >> > >> I'm still uncertain regarding the thread status. Hudson hasn't built > >> anything for about a month=2C so there have been no check-ins to the > >> release branch. > >> > >> (1) Has the OpenBSD problem been fixed or worked around? > >> If so=2C what are the relevant changes that should me merged from > >> trunk? > >> > >> The ChangeLog shows a lot of commits on head... > >> > >> (2) Is there still a problem in Windows threads? > >> Or are we just chasing a general access violation due to an > >> unknown reason? > >> > >> Again=2C is this ongoing or should some changes be merged for > >> the release? > >> > >> Olaf > >> > >> Quoting Tony Hosking : > >> > >>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: > >>> > >>>> ps: notice: > >>>> > >>>>>> resumed system calls will return an error value of EINTR > >>> > >>> Not a problem. We already cope with that in ThreadPThread. > >>> > >>>> We probably need to handle that in a bunch of places. > >>>> But some things like read/write will return just having done a > >>>> partial read/write? > >>> > >>> Huh? Should already be done? > >>> > >>>> Maybe something more cooperative would be easier? > >>>> Or even user threads?? > >>>> I do have make/get/set/swapcontext synthesized from setjmp/longjmp > >>>> on some OpenBSD platforms=2C like ppc/x86. > >>> > >>> These are available for OpenBSD already. Not sure why you synthesized. > >>> > >>>> > >>>> - Jay > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 21:07:09 +0000 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> Not sure how the formatting will come through..but yes. > >>>> Hopefully on all processor architectures. > >>>> > >>>> > >>>> "np" means "not portable"=2C ok > >>>> > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi > >>>> > >>>> appropos suspend > >>>> > >>>> http://www.openbsd.org/cgi-bin/man.cgi?query=3Dpthread_resume_all_np&se= > > ktion=3D3&apropos=3D0&manpath=3DOpenBSD+Current&arch=3Di386 > >>>> > >>>> PTHREAD_SUSPEND_NP(3) OpenBSD Programmer's Manual > >>>> PTHREAD_SUSPEND_NP(3) > >>>> > >>>> NAME > >>>> pthread_suspend_np=2C pthread_suspend_all_np=2C pthread_resume_np=2C > >>>> pthread_resume_all_np - suspend and resume thread(s) > >>>> > >>>> SYNOPSIS > >>>> #include=20 > >>>> #include=20 > >>>> > >>>> int > >>>> pthread_suspend_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_suspend_all_np(void)=3B > >>>> > >>>> int > >>>> pthread_resume_np(pthread_t thread)=3B > >>>> > >>>> void > >>>> pthread_resume_all_np(void)=3B > >>>> > >>>> DESCRIPTION > >>>> The pthread_suspend_np() function interrupts the given thread > >>>> and places > >>>> it in a suspended state. > >>>> > >>>> The pthread_suspend_all_np() function interrupts all threads except the > >>>> current thread and places them in a suspended state. > >>>> > >>>> The pthread_resume_np() function resumes a thread suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_all_np() function resumes all threads suspended with > >>>> pthread_suspend_np() or pthread_suspend_all_np(). > >>>> > >>>> The pthread_resume_np() and pthread_resume_all_np() functions > >>>> have no ef- > >>>> fect on threads that have not been suspended. > >>>> > >>>> Suspending and resuming a thread has an effect similar to that > >>>> of receiv- > >>>> ing a signal=2C namely that resumed system calls will return an > >>>> error value > >>>> of EINTR. > >>>> > >>>> RETURN VALUES > >>>> The pthread_suspend_np() and pthread_resume_np() functions fail if: > >>>> > >>>> [ESRCH] No thread could be found corresponding to that > >>>> specified by > >>>> the given thread ID. > >>>> > >>>> The pthread_suspend_np() function fails if: > >>>> > >>>> [EDEADLK] Attempt to suspend the current thread. > >>>> > >>>> SEE ALSO > >>>> pthread_cancel(3)=2C pthreads(3) > >>>> > >>>> STANDARDS > >>>> The pthread_suspend_np()=2C pthread_suspend_all_np()=2C pthread_resume_= > > np() > >>>> and pthread_resume_all_np() functions are non-portable and may not be > >>>> supported with the above semantics on other POSIX systems. > >>>> > >>>> OpenBSD 4.5 May 31=2C 2007 > >>>> 1 > >>>> NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | STANDARDS > >>>> > >>>> - Jay > >>>> > >>>> > >>>> From: jay.krell at cornell.edu > >>>> To: wagner at elegosoft.com > >>>> Date: Wed=2C 21 Oct 2009 13:02:26 -0700 > >>>> CC: m3devel at elegosoft.com > >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > >>>> > >>>> OpenBSD has good documentation.. (man pages) > >>>> > >>>> - Jay (phone) > >>>> > >>>> On Oct 21=2C 2009=2C at 11:05 AM=2C Olaf Wagner wrote: > >>>> > >>>> Stefan=2C > >>>> > >>>> you are our OpenBSD fan=2C aren't you? Can you answer this? > >>>> > >>>> Olaf > >>>> > >>>> ----- Forwarded message from hosking at cs.purdue.edu ----- > >>>> Date: Wed=2C 21 Oct 2009 12:06:12 -0400 > >>>> From: Tony Hosking=20 > >>>> Reply-To: Tony Hosking=20 > >>>> Subject: Re: [M3devel] Status of threads for RC4? > >>>> To: Olaf Wagner=20 > >>>> Cc: Jay K =2C m3devel=20 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C pthread_resume? > >>>> If so then we could work avoid the signals entirely (as we do on OS > >>>> X). All that is needed is implementation of RTMachine.SuspendThread=2C > >>>> RTMachine.ResumeThread and RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> ----- End forwarded message ----- > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> This is a known problem for the user-level pthreads on OpenBSD. > >>>> > >>>> Quick question: does OpenBSD support pthread_suspend=2C > >>>> pthread_resume? If so then we could work avoid the signals entirely > >>>> (as we do on OS X). All that is needed is implementation of > >>>> RTMachine.SuspendThread=2C RTMachine.ResumeThread and > >>>> RTMachine.GetState for OpenBSD targets. > >>>> > >>>> On 21 Oct 2009=2C at 10:04=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Tony Hosking : > >>>> > >>>> Yes=2C a C test can tell us if threads waiting on mutexes are able to > >>>> receive pthread_kill signals. > >>>> > >>>> Could you add such a simple test program somewhere in m3tests or > >>>> m3core/tests? We could also use that for a bug report to the > >>>> OpenBSD developers (they won't like to install m3 to reproduce > >>>> the error). > >>>> > >>>> Olaf > >>>> > >>>> On 21 Oct 2009=2C at 03:21=2C Olaf Wagner wrote: > >>>> > >>>> Quoting Jay K : > >>>> > >>>> Is it reasonable maybe to rewrite this test in C and see if it hangs? > >>>> > >>>> ie. see if maybe it is an OpenBSD bug? > >>>> > >>>> It doesn't hang with garbage collection turned off=2C so there must be > >>>> some unhealthy interaction between that and the thread implementation. > >>>> I don't think you will be able to narrow it down with a C test. > >>>> > >>>> Olaf > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Olaf Wagner -- elego Software Solutions GmbH > >>>> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C 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=E4ftsf=FChrer: Olaf Wagner | Sitz: Ber= > > lin > >>>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: > >>>> DE163214194 > >>>> > >>>> > >>>> > >> > >> > >> > >> -- > >> Olaf Wagner -- elego Software Solutions GmbH > >> Gustav-Meyer-Allee 25 / Geb=E4ude 12=2C 13355 Berlin=2C Germany > >> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 9= > > 5 > >> http://www.elegosoft.com | Gesch=E4ftsf=FChrer: Olaf Wagner | Sitz: Berli= > > n > >> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214= > > 194 > >> = > > > > > > -- > 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 hosking at cs.purdue.edu Mon Oct 26 15:07:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:07:55 -0400 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: OpenBSD user-level threading should work one way (using getcontext/ setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: > > Windows threads should be ok for release..though..there is > definitely divergence in head. > > There was really just one main problem in Win32 threads, a copy/ > paste error I made a few months ago. > > It is fixed in release. > > > > OpenBSD we know the fix but not sure we'll get to it. > > > > There are still problems with mentor and/or Juno and/or Trestle, all > Windows specific. > > To some extent there are problems going back years, but things seem > to be much worse lately. > > I'm still investigating. > > > > - Jay > > >> Date: Mon, 26 Oct 2009 13:49:24 +0100 >> From: wagner at elegosoft.com >> To: jay.krell at cornell.edu >> CC: m3devel at elegosoft.com >> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >> >> Quoting Jay K : >> >>> WIndows threads are ok. >> In the release branch, too? >> >>> OpenBSD are not currently=2C never have been. >> Do we have a work-around or are we going to ignore this for the >> release? >> >>> Windows problems are probably in Trestle. >>> Have been for many years apparently. >> Do we wait for a fix here for RC4? >> >> I can see that you and Tony are quite busy, but there are no visible >> changes for the release status. >> >> Olaf >> >>> =20 >>> - Jay >>> >>> ---------------------------------------- >>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>> From: wagner at elegosoft.com >>>> To: hosking at cs.purdue.edu >>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>> >>>> Hi again=2C >>>> >>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>> built >>>> anything for about a month=2C so there have been no check-ins to >>>> the >>>> release branch. >>>> >>>> (1) Has the OpenBSD problem been fixed or worked around? >>>> If so=2C what are the relevant changes that should me merged from >>>> trunk? >>>> >>>> The ChangeLog shows a lot of commits on head... >>>> >>>> (2) Is there still a problem in Windows threads? >>>> Or are we just chasing a general access violation due to an >>>> unknown reason? >>>> >>>> Again=2C is this ongoing or should some changes be merged for >>>> the release? >>>> >>>> Olaf >>>> >>>> Quoting Tony Hosking : >>>> >>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>> >>>>>> ps: notice: >>>>>> >>>>>>>> resumed system calls will return an error value of EINTR >>>>> >>>>> Not a problem. We already cope with that in ThreadPThread. >>>>> >>>>>> We probably need to handle that in a bunch of places. >>>>>> But some things like read/write will return just having done a >>>>>> partial read/write? >>>>> >>>>> Huh? Should already be done? >>>>> >>>>>> Maybe something more cooperative would be easier? >>>>>> Or even user threads?? >>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>> longjmp >>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>> >>>>> These are available for OpenBSD already. Not sure why you >>>>> synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Mon Oct 26 15:08:41 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Mon, 26 Oct 2009 10:08:41 -0400 Subject: [M3devel] Fwd: Fwd: Re: Status of threads for RC4? References: <25DE2087-D1CB-4051-8D2B-B29040ABDCCE@cs.purdue.edu> Message-ID: 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 Begin forwarded message: > From: Tony Hosking > Date: 26 October 2009 10:08:20 GMT-04:00 > To: Jay K > Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? > > On 26 Oct 2009, at 10:01, Jay K wrote: > >> >> Windows threads should be ok for release..though..there is >> definitely divergence in head. >> >> There was really just one main problem in Win32 threads, a copy/ >> paste error I made a few months ago. >> >> It is fixed in release. >> >> >> >> OpenBSD we know the fix but not sure we'll get to it. >> >> >> >> There are still problems with mentor and/or Juno and/or Trestle, >> all Windows specific. >> >> To some extent there are problems going back years, but things seem >> to be much worse lately. >> >> I'm still investigating. > > Probably worse because you are on multicore? So you see the races > more often? > >> >> >> >> - Jay >> >> >>> Date: Mon, 26 Oct 2009 13:49:24 +0100 >>> From: wagner at elegosoft.com >>> To: jay.krell at cornell.edu >>> CC: m3devel at elegosoft.com >>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>> >>> Quoting Jay K : >>> >>>> WIndows threads are ok. >>> In the release branch, too? >>> >>>> OpenBSD are not currently=2C never have been. >>> Do we have a work-around or are we going to ignore this for the >>> release? >>> >>>> Windows problems are probably in Trestle. >>>> Have been for many years apparently. >>> Do we wait for a fix here for RC4? >>> >>> I can see that you and Tony are quite busy, but there are no visible >>> changes for the release status. >>> >>> Olaf >>> >>>> =20 >>>> - Jay >>>> >>>> ---------------------------------------- >>>>> Date: Mon=2C 26 Oct 2009 10:35:08 +0100 >>>>> From: wagner at elegosoft.com >>>>> To: hosking at cs.purdue.edu >>>>> CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com >>>>> Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? >>>>> >>>>> Hi again=2C >>>>> >>>>> I'm still uncertain regarding the thread status. Hudson hasn't >>>>> built >>>>> anything for about a month=2C so there have been no check-ins to >>>>> the >>>>> release branch. >>>>> >>>>> (1) Has the OpenBSD problem been fixed or worked around? >>>>> If so=2C what are the relevant changes that should me merged from >>>>> trunk? >>>>> >>>>> The ChangeLog shows a lot of commits on head... >>>>> >>>>> (2) Is there still a problem in Windows threads? >>>>> Or are we just chasing a general access violation due to an >>>>> unknown reason? >>>>> >>>>> Again=2C is this ongoing or should some changes be merged for >>>>> the release? >>>>> >>>>> Olaf >>>>> >>>>> Quoting Tony Hosking : >>>>> >>>>>> On 21 Oct 2009=2C at 20:12=2C Jay K wrote: >>>>>> >>>>>>> ps: notice: >>>>>>> >>>>>>>>> resumed system calls will return an error value of EINTR >>>>>> >>>>>> Not a problem. We already cope with that in ThreadPThread. >>>>>> >>>>>>> We probably need to handle that in a bunch of places. >>>>>>> But some things like read/write will return just having done a >>>>>>> partial read/write? >>>>>> >>>>>> Huh? Should already be done? >>>>>> >>>>>>> Maybe something more cooperative would be easier? >>>>>>> Or even user threads?? >>>>>>> I do have make/get/set/swapcontext synthesized from setjmp/ >>>>>>> longjmp >>>>>>> on some OpenBSD platforms=2C like ppc/x86. >>>>>> >>>>>> These are available for OpenBSD already. Not sure why you >>>>>> synthesized > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:13:15 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:13:15 +0000 Subject: [M3devel] Fwd: Re: Status of threads for RC4? In-Reply-To: References: <20091021200537.2rpal2av1cosc4k4@mail.elegosoft.com> Message-ID: Tony, I understand "as long as OpenBSD pthreads is userthreads, we might as well use our own" but I don't understand "pthread threading is unlikely to work on OpenBSD". Shouldn't it work pretty ok actually? Except for the suspend/resume stuff? It should be easy to have OpenBSD custom stuff like Darwin has custom stuff, right? I was of the impression that the stack could merely be heap allocated, but perhaps it takes more than that? get/set/make/swapcontext are not available as far as I know on OpenBSD, but I do have them working on OpenBSD/x86 and OpenBSD/ppc (no OpenBSD/ppc currently to test on, but not a big deal to bring up it and others). Regarding Windows I did remove the idle thread cache, which is good and bad. The removal was mismotivated, and it might be a good thing, might be a bad thing. - Jay CC: wagner at elegosoft.com; m3devel at elegosoft.com From: hosking at cs.purdue.edu To: jay.krell at cornell.edu Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Date: Mon, 26 Oct 2009 10:07:55 -0400 OpenBSD user-level threading should work one way (using getcontext/setcontext./swapcontext/makecontext if available there) or another (emulating these using setjmp/longjmp and a documented approach to synthesizing thread stacks using sigaltstack). Pthread threading is unlikely to work on OpenBSD until they fully support rthreads, but since OpenBSD pthreads are user-level we might as well use our own ThreadPosix implementation. I don't know if the old (current RC branch) ThreadPosix will work on OpenBSD or whether it would be worth moving to the much improved version I implemented this weekend which is now on trunk. On 26 Oct 2009, at 10:01, Jay K wrote: Windows threads should be ok for release..though..there is definitely divergence in head. There was really just one main problem in Win32 threads, a copy/paste error I made a few months ago. It is fixed in release. OpenBSD we know the fix but not sure we'll get to it. There are still problems with mentor and/or Juno and/or Trestle, all Windows specific. To some extent there are problems going back years, but things seem to be much worse lately. I'm still investigating. - Jay Date: Mon, 26 Oct 2009 13:49:24 +0100 From: wagner at elegosoft.com To: jay.krell at cornell.edu CC: m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Quoting Jay K : WIndows threads are ok. In the release branch, too? OpenBSD are not currently=2C never have been. Do we have a work-around or are we going to ignore this for the release? Windows problems are probably in Trestle. Have been for many years apparently. Do we wait for a fix here for RC4? I can see that you and Tony are quite busy, but there are no visible changes for the release status. Olaf =20 - Jay ---------------------------------------- Date: Mon=2C 26 Oct 2009 10:35:08 +0100 From: wagner at elegosoft.com To: hosking at cs.purdue.edu CC: jay.krell at cornell.edu=3B m3devel at elegosoft.com Subject: Re: [M3devel] Fwd: Re: Status of threads for RC4? Hi again=2C I'm still uncertain regarding the thread status. Hudson hasn't built anything for about a month=2C so there have been no check-ins to the release branch. (1) Has the OpenBSD problem been fixed or worked around? If so=2C what are the relevant changes that should me merged from trunk? The ChangeLog shows a lot of commits on head... (2) Is there still a problem in Windows threads? Or are we just chasing a general access violation due to an unknown reason? Again=2C is this ongoing or should some changes be merged for the release? Olaf Quoting Tony Hosking : On 21 Oct 2009=2C at 20:12=2C Jay K wrote: ps: notice: resumed system calls will return an error value of EINTR Not a problem. We already cope with that in ThreadPThread. We probably need to handle that in a bunch of places. But some things like read/write will return just having done a partial read/write? Huh? Should already be done? Maybe something more cooperative would be easier? Or even user threads?? I do have make/get/set/swapcontext synthesized from setjmp/longjmp on some OpenBSD platforms=2C like ppc/x86. These are available for OpenBSD already. Not sure why you synthesized -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Mon Oct 26 15:57:45 2009 From: jay.krell at cornell.edu (Jay K) Date: Mon, 26 Oct 2009 14:57:45 +0000 Subject: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) In-Reply-To: References: Message-ID: Hm, obviously..it might have to do with if the text windows/controls/widgets/vbts are coverd up or when they are uncovered. I believe I've seen the heap corruption now once in an older 5.2.6... - Jay > From: jay.krell at cornell.edu > To: hosking at cs.purdue.edu > CC: m3devel at elegosoft.com > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > Date: Mon, 26 Oct 2009 09:46:06 +0000 > > > Here's a better view of the problem, again in 5.2.6. > Notice 00e15888 repeating in both threads' parameters. > This seems like a simple "add a lock use somewhere" problem > but I have little idea of Trestle's locking protocols, > apparently a complicated topic. > You know, somehow redisplay/reshape need more serialization, > but I don't know exactly what. > > > The call to Capture fails with a dereference of NIL in the LOCK use. > > > The unusual part I think is: > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > > > That's probably not how Redisplay is normally used? > > > I'll look again at head and see if the behavior resembles 5.2.6. > > > 0:000> .logopen c:\2.log > Opened log file 'c:\2.log' > 0:000> ~*kv99 > . 0 Id: 2ec.ce8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr Args to Child > 0012ea74 005b1661 00000000 0012ea9c 0012eab8 Juno!VBT__Capture+0x36 [VBT.m3 @ 1175] > 0012eacc 005b0142 00e15888 0000005d 000001aa Juno!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > 0012eb50 005c0df2 00e15888 0012eba4 0012ec4c Juno!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > 0012ebd8 005ea7cd 00e15888 0012ec4c 0012ec6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ebf8 005c0df2 00ee1a50 0012ec4c 0012ecf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ec80 005ea7cd 00ee1a50 0012ecf4 0012ed14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012eca0 005c0df2 00ee0988 0012ecf4 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012ed28 005cb722 00ee0988 0012ed5c 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ed70 005cb40d 00fc3e08 00000001 0012ef10 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012ee8c 005cae70 00fc3e08 00000001 0012ef30 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012eebc 005c0df2 00fc3e08 0012ef10 00fc3e08 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012ef44 005cb722 00fc3e08 0012ef78 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012ef8c 005cb40d 012c75a8 00000001 0012f12c Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f0a8 005cae70 012c75a8 00000001 0012f14c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f0d8 005c0df2 012c75a8 0012f12c 012c75a8 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f160 005cb722 012c75a8 0012f194 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f1a8 005cb40d 012c3334 00000001 0012f348 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f2c4 005cae70 012c3334 00000001 0012f368 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f2f4 005c0df2 012c3334 0012f348 012c3334 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f37c 005cb722 012c3334 0012f3b0 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f3c4 005cb40d 012b7c9c 00000001 0012f564 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 0012f4e0 005cae70 012b7c9c 00000001 0012f584 Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 0012f510 005c0df2 012b7c9c 0012f564 0012f5e4 Juno!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > 0012f598 005ea7cd 012b7c9c 0012f5e4 0012f604 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f5b8 005603a0 012b06b8 0012f5e4 0012f66c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f618 005c0df2 012b06b8 0012f66c 0012f6f4 Juno!ReactivityVBT__Reshape+0xb9 [ReactivityVBT.m3 @ 166] > 0012f6a0 005ea7cd 012b06b8 0012f6f4 0012f714 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f6c0 005d9556 012b7c18 0012f6f4 0012f77c Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012f728 005c0df2 012b7c18 0012f77c 0012f92c Juno!HighlightVBT__Reshape+0xc0 [HighlightVBT.m3 @ 64] > 0012f7b0 005d1a08 012b7c18 0141c7cc 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012f880 005d0b6e 00f7437c 0012f8ac 00000001 Juno!ZSplit__Redisplay3+0x748 [ZSplit.m3 @ 508] > 0012f9d4 005d00e8 00f7437c 00000001 00000000 Juno!ZSplit__Redisplay2+0x85d [ZSplit.m3 @ 324] > 0012fa50 005c0df2 00f7437c 0012faa4 0012fb4c Juno!ZSplit__Reshape+0x3d9 [ZSplit.m3 @ 219] > 0012fad8 005ea7cd 00f7437c 0012fb4c 0012fb6c Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012faf8 005c0df2 00e2cf78 0012fb4c 0012fbf4 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fb80 005ea7cd 00e2cf78 0012fbf4 0012fc14 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fba0 005c0df2 00fbeb28 0012fbf4 0075aa78 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 0012fc28 005d51c9 00fbeb28 00fbe684 00fbe684 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 0012fc4c 005c2011 00fbe670 00ec8ec8 00000000 Juno!TSplit__Redisplay+0xa9 [TSplit.m3 @ 76] > 0012fc84 005d8514 00fbe670 007441f0 00f74194 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 0012fce8 0053ce4c 007441f0 00f74194 00000000 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 0012fd44 0050478c 00f74194 00000000 00fbe5bc Juno!TextPort__TryFocus+0x12 [TextPort.m3 @ 437] > 0012fd74 005066c1 00fbeb28 00000000 00fbe5bc Juno!FVRuntime__FirstFocus+0xd7 [FVRuntime.m3 @ 1011] > 0012fdb8 0043cfa6 00fbe5bc 0043e7c8 00000000 Juno!FormsVBT__PutInteger+0x117 [FVRuntime.m3 @ 1558] > 0012fed4 00677aeb 00000001 0067805c 00737298 Juno!Juno_M3+0x1453 [Juno.m3 @ 2157] > 0012ff18 006770c3 00737298 00332d28 00737298 Juno!RTLinker__RunMainBody+0x25a [RTLinker.m3 @ 387] > 0012ff30 0067716c 00737298 00332d28 004019b0 Juno!RTLinker__AddUnitI+0x6f [RTLinker.m3 @ 100] > 0012ff54 00402b78 004019b0 7c911460 0006f4cc Juno!RTLinker__AddUnit+0xa1 [RTLinker.m3 @ 110] > 0012ff70 006aed8f 00000003 00332508 00332d28 Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 7c911460 0006f4cc 7ffd4000 Juno!mainCRTStartup+0xff > WARNING: Stack unwind information not available. Following frames may be wrong. > 0012fff0 00000000 006aec90 00000000 78746341 kernel32!RegisterWaitForInputIdle+0x49 > > > 6 Id: 2ec.133c Suspend: 1 Teb: 7ffd9000 Unfrozen > ChildEBP RetAddr Args to Child > WARNING: Stack unwind information not available. Following frames may be wrong. > 053ff914 005f255f 0c012255 0000014d 00000237 ntdll!KiFastSystemCallRet > 053ff950 005f24cf 0000014d 00000237 00ed9464 Juno!WinTrestle__CreateMemoryDC+0x6d [WinTrestle.m3 @ 1335] > 053ff974 005f0dc4 00eda77c 0000014d 00000237 Juno!WinTrestle__CreateOffscreen+0x41 [WinTrestle.m3 @ 1315] > 053ff9b4 005bef04 00d22780 00ed9464 0000014d Juno!WinTrestle__InstallOffScreen+0x15d [WinTrestle.m3 @ 694] > 053ff9f0 005b1195 00ed9264 0000014d 00000237 Juno!Trestle__InstallOffscreen+0x1cd [Trestle.m3 @ 764] > 053ffa70 005b12a1 00e15888 053ffb00 00e15888 Juno!DblBufferVBT__InstallOffscreen+0x134 [DblBufferVBT.m3 @ 361] > 053ffaa8 005b01da 00e15888 053ffb60 00e15888 Juno!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 390] > 053ffb0c 005c0df2 00e15888 053ffb60 053ffc08 Juno!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > 053ffb94 005ea7cd 00e15888 053ffc08 053ffc28 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffbb4 005c0df2 00ee1a50 053ffc08 053ffcb0 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffc3c 005ea7cd 00ee1a50 053ffcb0 053ffcd0 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffc5c 005c0df2 00ee0988 053ffcb0 00ee0988 Juno!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > 053ffce4 005cb722 00ee0988 053ffd18 0062c0f4 Juno!VBTClass__Reshape+0x2db [VBTClass.m3 @ 153] > 053ffd2c 005cb40d 00fc3e08 00000000 00ed91b0 Juno!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > 053ffe48 005cb345 00fc3e08 00000000 00fc3e1c Juno!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > 053ffe68 005c2011 00fc3e08 00ed91b0 00000004 Juno!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > 053ffea0 005d8514 00fc3e08 0067ddb4 00cc7880 Juno!VBTClass__Redisplay+0xe9 [VBTClass.m3 @ 367] > 053fff04 005d807e 0067ddb4 053fff40 00d23044 Juno!VBTRep__Redisplay+0x410 [VBTRep.m3 @ 652] > 053fff2c 005d80d2 00cc092c 00cc7890 005d9110 Juno!VBTRep__UncoverRedisplay+0xa0 [VBTRep.m3 @ 602] > 053fff50 0067eb2e 00cc7890 053fffb0 04cdef20 Juno!VBTRep__RdApply+0x4f [VBTRep.m3 @ 606] > 053fff88 0067e9bf 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > 053fffb4 7c80b729 04cdef20 69662074 0012fbb4 Juno!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > 053fffec 00000000 0067e985 04cdef20 00000000 kernel32!GetModuleFileNameA+0x1ba > > > > - Jay > > > ________________________________ > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 03:26:46 +0000 > > > > > > > > > > > > > > > > > > full disclosure: > > This version has the bug where non-standalone NT apps don't do set operations correctly. > > > > (This is fixed in newer source, related to dynamically linking to data instead of the usual functions.) > > I'll retest with standalone. > > > > > > > > If that survives hundreds of iterations I can go forward gradually and find when things broke. > > > > > > > > - Jay > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Mon, 26 Oct 2009 02:45:57 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > I should show all thread stacks, threads 0 and 6 seem to be in nearby code. > > > > 0:000> ~*k > > . 0 Id: 1374.1548 Suspend: 1 Teb: 7ffdf000 Unfrozen > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 1 Id: 1374.620 Suspend: 1 Teb: 7ffde000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0500ffb4 7c80b729 ntdll!KiFastSystemCallRet > > 0500ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 2 Id: 1374.464 Suspend: 1 Teb: 7ffdd000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0510feb0 7c802455 ntdll!KiFastSystemCallRet > > 0510fec0 00391ebd kernel32!Sleep+0xf > > 0510fef4 0074403f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0510ff50 0039183e m3ui!VBTRep__MeterMaid+0x24d [VBTRep.m3 @ 460] > > 0510ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0510ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0510ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 3 Id: 1374.88c Suspend: 1 Teb: 7ffdc000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0520fd38 7c802542 ntdll!KiFastSystemCallRet > > 0520fd4c 00390be9 kernel32!WaitForSingleObject+0x12 > > 0520fd80 0071a40f m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0520fdc4 00719335 m3ui!WinTrestle__PaintBatchVBT+0x57 [WinTrestle.m3 @ 1558] > > 0520fe04 7e418734 m3ui!WinTrestle__WindowProc+0x3f5 [WinTrestle.m3 @ 1149] > > 0520fe30 7e418816 USER32!GetDC+0x6d > > 0520fe98 7e4189cd USER32!GetDC+0x14f > > 0520fef8 7e4196c7 USER32!GetWindowLongW+0x127 > > 0520ff08 0071cbde USER32!DispatchMessageA+0xf > > 0520ff50 0039183e m3ui!WinTrestle__MessengerApply+0x125 [WinTrestle.m3 @ 2441] > > 0520ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0520ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0520ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 4 Id: 1374.1410 Suspend: 1 Teb: 7ffdb000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0530feb8 7c802542 ntdll!KiFastSystemCallRet > > 0530fecc 00390d8b kernel32!WaitForSingleObject+0x12 > > 0530fef0 00390edf m3core!ThreadWin32__InnerWait+0x86 [ThreadWin32.m3 @ 224] > > 0530ff18 006c6e84 m3core!Thread__Wait+0x4d [ThreadWin32.m3 @ 262] > > 0530ff50 0039183e m3vbtkit!VTView__VFontCleanUpThread+0x66 [VTView.m3 @ 111] > > 0530ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0530ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0530ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 5 Id: 1374.1624 Suspend: 1 Teb: 7ffda000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0540fed4 7c802455 ntdll!KiFastSystemCallRet > > 0540fee4 00391ebd kernel32!Sleep+0xf > > 0540ff18 0064a87f m3core!Thread__Pause+0x6c [ThreadWin32.m3 @ 696] > > 0540ff50 0039183e m3vbtkit!FileBrowserVBT__Watcher+0x1f2 [FileBrowserVBT.m3 @ 25 > > 9] > > 0540ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0540ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0540ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 6 Id: 1374.1188 Suspend: 1 Teb: 7ffd9000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0550f87c 7c9010fd ntdll!KiFastSystemCallRet > > 0550f8b0 0075a2cb ntdll!RtlLeaveCriticalSection+0x1d > > 0550f8f0 00774164 m3ui!FilterClass__Replace+0x116 [FilterClass.m3 @ 91] > > 0550f91c 00759ffa m3ui!Filter__Replace+0xab [Filter.m3 @ 30] > > 0550f94c 00770fa2 m3ui!FilterClass__Be+0x8a [FilterClass.m3 @ 39] > > 0550f974 00785c61 m3ui!HighlightVBT__Be+0x102 [HighlightVBT.m3 @ 42] > > 0550f9ac 0078749c m3ui!InstalledVBT__InitChild+0xba [InstalledVBT.m3 @ 41] > > 0550f9dc 0078719a m3ui!Trestle__InnerAttach+0x3a [Trestle.m3 @ 371] > > 0550f9f8 00757558 m3ui!Trestle__Attach+0x29 [Trestle.m3 @ 285] > > 0550fa70 007576a1 m3ui!DblBufferVBT__InstallOffscreen+0xf7 [DblBufferVBT.m3 @ 36 > > 0] > > 0550faa8 007565da m3ui!DblBufferVBT__ReshapeOffScreen+0xb6 [DblBufferVBT.m3 @ 39 > > 0] > > 0550fb0c 0073d1ad m3ui!DblBufferVBT__Reshape+0x216 [DblBufferVBT.m3 @ 112] > > 0550fb94 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fbb4 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fc3c 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fc5c 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0550fce4 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0550fd2c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0550fe48 0075d085 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0550fe68 0073e419 m3ui!HVSplit__Redisplay+0x21 [HVSplit.m3 @ 493] > > 7 Id: 1374.140c Suspend: 1 Teb: 7ffd8000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0582ff70 7c802542 ntdll!KiFastSystemCallRet > > 0582ff84 0039170f kernel32!WaitForSingleObject+0x12 > > 0582ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x7a [ThreadWin32.m3 @ 501] > > 0582ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 8 Id: 1374.1050 Suspend: 1 Teb: 7ffd7000 Unfrozen > > ChildEBP RetAddr > > WARNING: Stack unwind information not available. Following frames may be wrong. > > 0592fee0 7c802542 ntdll!KiFastSystemCallRet > > 0592fef4 00390be9 kernel32!WaitForSingleObject+0x12 > > 0592ff28 007448bc m3core!ThreadWin32__LockMutex+0x125 [ThreadWin32.m3 @ 152] > > 0592ff50 0039183e m3ui!VBTRep__RdApply+0x33 [VBTRep.m3 @ 606] > > 0592ff88 003916cf m3core!ThreadWin32__RunThread+0x106 [ThreadWin32.m3 @ 531] > > 0592ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x3a [ThreadWin32.m3 @ 497] > > 0592ffec 00000000 kernel32!GetModuleFileNameA+0x1ba > > 0:000> > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > Date: Mon, 26 Oct 2009 02:43:29 +0000 > > > > > > > > I ran like another 200, no occurence, then another 430 and it did occur, again this is with very old 5.2.6, seeing if it ever worked, and this time I added the lock that Tony recently added. With this high a number of occurences to see it happen I'm going to test head again on non-NT. > > > > (1374.1548): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012ea9c ebx=00f78b1c ecx=00000000 edx=00000237 esi=00000000 edi=0012eba4 > > eip=0073990f esp=0012e9c8 ebp=0012ea74 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3-5.2.6\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 [VBT.m3 @ 1175] > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [DblBufferVBT.m3 @ 424] > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e [DblBufferVBT.m3 @ 108] > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 [FilterClass.m3 @ 84] > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e [HVSplit.m3 @ 542] > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 [HVSplit.m3 @ 505] > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde [HVSplit.m3 @ 428] > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 [VBTClass.m3 @ 153] > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sun, 25 Oct 2009 11:55:42 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes (crashing intermittently from way back when..) > > > > > > > > Hm, oh well, back in 5.2.6 (2003-06-27), after 50 runs of Juno I get: > > > > (I added @M3no-trestle-await-delete so that I can run in a loop, as well as the WinContext.m3 change) > > > > (a70.158c): Access violation - code c0000005 (first chance) > > m3ui!VBT__Capture+0x36: > > 0073990f 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> k > > *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdl > > l.dll - > > ChildEBP RetAddr > > 0012ea74 00757a61 m3ui!VBT__Capture+0x36 > > 0012eacc 00756542 m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 > > 0012eb50 0073d1ad m3ui!DblBufferVBT__Reshape+0x17e > > 0012ebd8 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012ebf8 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ec80 0075a1ad m3ui!VBTClass__Reshape+0x2e6 > > 0012eca0 0073d1ad m3ui!FilterClass__Reshape+0x30 > > 0012ed28 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ed70 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012ee8c 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012eebc 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012ef44 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012ef8c 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f0a8 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f0d8 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f160 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0012f1a8 0075d14d m3ui!HVSplit__QuickRedisplay+0x22e > > 0012f2c4 0075cbb0 m3ui!HVSplit__Redisplay2+0xc0 > > 0012f2f4 0073d1ad m3ui!HVSplit__Reshape+0xde > > 0012f37c 0075d462 m3ui!VBTClass__Reshape+0x2e6 > > 0:000> > > > > > > I'll have to apply Tony's recent change that fixed the NIL deref in formsedit. > > > > But otherwise this is looking pretty grim. I can try a 5.1.x or 3.x or 4.x version... see if this ever wasn't flaky.. > > > > > > > > > > - Jay > > > > > > > > > > ________________________________ > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > Date: Sat, 24 Oct 2009 14:19:07 +0000 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > > > VirtualAlloc rounds up to 64K. Anything smaller is just wasted I believe. > > > > quick experiment: > > #include > > #include > > int main() > > { > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > printf("%p\n", VirtualAlloc(NULL, 1, MEM_COMMIT, PAGE_READWRITE)); > > > > return 0; > > } > > > > => > > 00350000 > > 00360000 > > 00370000 > > > > - Jay > > > > > > ________________________________ > > > > From: hosking at cs.purdue.edu > > To: jay.krell at cornell.edu > > Date: Fri, 23 Oct 2009 14:07:02 -0400 > > CC: m3devel at elegosoft.com > > Subject: Re: [M3devel] Juno/Thread/Win32 notes > > > > > > Should not be a problem. Does valloc restrict you to 64K pages? > > > > > > > > > > On 23 Oct 2009, at 09:16, Jay K wrote: > > > > > > > > Tony, a few months ago I changed the NT pagesize to 64K, > > so I could simply allocate with VirtualAlloc, and not waste any. > > You think that could be a problem? > > Most platforms use 8K. > > This used to have to relate to the hardware, when there > > was VM-synchronized GC, but no longer. > > > > Also I just hit control-c and: > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x321f3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x321f3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x321f440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x321f480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x321f4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x321f588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x321f5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x321f704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > > > > > We've discussed before that things are not control-c safe. > > Maybe related??? > > > > > > - Jay > > > > > > > > > > > > ________________________________ > > > > > > From: jay.krell at cornell.edu > > To: hosking at cs.purdue.edu > > CC: m3devel at elegosoft.com > > Subject: RE: [M3devel] Juno/Thread/Win32 notes > > Date: Fri, 23 Oct 2009 13:11:36 +0000 > > > > It's very intermittent, under 10% of runs crash or hang. I'm trying to tweak the heap parameters to try to induce it more. > > I've also grown stacks to rule that out. > > Here are some of the crashes. > > > > > > > > (adc.f8): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=00000001 ebx=00200000 ecx=00000000 edx=005cf3f8 esi=001ffffc edi=02040018 > > eip=005cf449 esp=0012f89c ebp=0012f8d4 iopl=0 nv up ei pl nz ac pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3core.dll > > m3core!RTCollector__Move+0x51: > > 005cf449 8b5e00 mov ebx,dword ptr [esi] ds:0023:001ffffc=???????? > > 0:000> r esi > > esi=001ffffc > > 0:000> k > > ChildEBP RetAddr > > 0012f8d4 005cb121 m3core!RTCollector__Move+0x51 [..\src\runtime\common\RTCollector.m3 @ 409] > > 0012f918 005ca9fa m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap.m3 @ 202] > > 0012f93c 005ca990 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeapMap.m3 @ 62] > > 0012f968 005d0fae m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapMap.m3 @ 47] > > 0012f990 005d0df6 m3core!RTCollector__CleanBetween+0xec [..\src\runtime\common\RTCollector.m3 @ 1090] > > 0012f9b8 005d076f m3core!RTCollector__CleanPage+0x55 [..\src\runtime\common\RTCollector.m3 @ 1063] > > 0012fa0c 005d01ef m3core!RTCollector__CollectSomeInStateZero+0x544 [..\src\runtime\common\RTCollector.m3 @ 884] > > 0012fa20 005cfe86 m3core!RTCollector__CollectSome+0x6e [..\src\runtime\common\RTCollector.m3 @ 719] > > 0012fa64 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0012faa4 005c7466 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0012fad8 005c7100 m3core!RTAllocator__GetTracedRef+0x8c [..\src\runtime\common\RTAllocator.m3 @ 202] > > 0012fafc 0051d1ae m3core!RTHooks__AllocateTracedRef+0x15 [..\src\runtime\common\RTAllocator.m3 @ 113] > > 0012fb44 1002c564 m3!AtomRefTbl__Put+0x250 [..\NT386\AtomRefTbl.m3 @ 127] > > 0012fb74 0041fcf5 juno_compiler!JunoScope__Bind+0x79 [..\src\JunoScope.m3 @ 114] > > 0012fbc8 00420b88 Juno!Editor__Pass1+0xe3b [..\src\Editor.m3 @ 711] > > 0012fc84 00420a30 Juno!Editor__Compile2+0x148 [..\src\Editor.m3 @ 812] > > 0012fcb8 004447f1 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > > 0012fcf8 00452244 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > > 0012fd58 004532b6 Juno!Juno__CompileFile+0xb8 [..\src\Juno.m3 @ 1897] > > 0012fed4 005d8d64 Juno!Juno_M3+0x9d8 [..\src\Juno.m3 @ 2068] > > > > > > > > > > > > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > (1d8.148): Access violation - code c0000005 (first chance) > > First chance exceptions are reported before any exception handling. > > This exception may be expected and handled. > > eax=0012e954 ebx=01636e98 ecx=00000000 edx=00000237 esi=00000000 edi=0012ea6c > > eip=00f4a3ed esp=0012e880 ebp=0012e92c iopl=0 nv up ei pl nz na pe nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206 > > *** WARNING: Unable to verify checksum for C:\cm3\bin\m3ui.dll > > m3ui!VBT__Capture+0x36: > > 00f4a3ed 8b5e00 mov ebx,dword ptr [esi] ds:0023:00000000=???????? > > 0:000> r esi > > esi=00000000 > > 0:000> .lines > > Line number information will be loaded > > 0:000> k 999 > > ChildEBP RetAddr > > 0012e92c 00f6d371 m3ui!VBT__Capture+0x36 [..\src\vbt\VBT.m3 @ 1176] > > 0012e984 00f6b82c m3ui!DblBufferVBT__PaintVBTtoVBT+0x71 [..\src\split\DblBufferVBT.m3 @ 424] > > 0012ea0c 00f4cd47 m3ui!DblBufferVBT__Reshape+0x1f8 [..\src\split\DblBufferVBT.m3 @ 108] > > 0012eaa0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eac4 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012eb58 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012eb7c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012ec10 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ec58 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ed74 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012eda4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012ee38 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012ee80 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012ef9c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012efcc 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f060 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f0a8 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f1c4 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f1f4 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f288 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f2d0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 0012f3ec 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 0012f41c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 0012f4b0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f4d4 00e6b07d m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f534 00f4cd47 m3vbtkit!ReactivityVBT__Reshape+0xb9 [..\src\lego\ReactivityVBT.m3 @ 167] > > 0012f5c8 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f5ec 00f88426 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012f654 00f4cd47 m3ui!HighlightVBT__Reshape+0xc0 [..\src\split\HighlightVBT.m3@ 64] > > 0012f6e8 00f781d2 m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012f7cc 00f75f61 m3ui!ZSplit__Redisplay3+0x132d [..\src\split\ZSplit.m3 @ 508] > > 0012f924 00f74e59 m3ui!ZSplit__Redisplay2+0xde1 [..\src\split\ZSplit.m3 @ 324] > > 0012f9a4 00f4cd47 m3ui!ZSplit__Reshape+0x6f6 [..\src\split\ZSplit.m3 @ 219] > > 0012fa38 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fa5c 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012faf0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fb14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 0012fba8 00f7cfcc m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 0012fbd4 00f4eca1 m3ui!TSplit__Redisplay+0x164 [..\src\split\TSplit.m3 @ 76] > > 0012fc0c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 0012fc78 00e98ffe m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 0012fce4 0038b8cf m3vbtkit!TextPort__TryFocus+0x12 [..\src\etext\TextPort.m3 @ 438] > > 0012fd14 0038e271 m3formsvbt!FVRuntime__FirstFocus+0x18e [..\src\FVRuntime.m3 @1012] > > 0012fd58 00455390 m3formsvbt!FormsVBT__PutInteger+0x117 [..\src\FVRuntime.m3 @ 1559] > > 0012fed4 005d8d64 Juno!Juno_M3+0x2c56 [..\src\Juno.m3 @ 2178] > > 0012ff18 005d833c m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLinker.m3 @ 399] > > 0012ff30 005d83e5 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker.m3 @ 113] > > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker.m3 @ 122] > > 0012ff70 004ba97f Juno!main+0x38 [_m3main.mc @ 4] > > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > > 0:000> > > > > > > > > *** > > *** runtime error: > > *** Exception "VBTClass.FatalError" not in RAISES list > > *** file "..\src\vbt\VBTClass.m3", line 935 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x34bf3bc 0xf51971 Crash + 0x3e in ..\src\vbt\VBTClass.m3 > > 0x34bf3ec 0xf4edcc GetShape + 0x9e in ..\src\vbt\VBTClass.m3 > > 0x34bf440 0xf6e50b Shape + 0x14e in ..\src\split\BorderedVBT.m3 > > 0x34bf480 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf4b8 0xf6f7f8 Shape + 0xdb in ..\src\split\FilterClass.m3 > > 0x34bf4f8 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf548 0xf7e807 Shape + 0x36 in ..\src\split\ButtonVBT.m3 > > 0x34bf588 0xf4ed66 GetShape + 0x38 in ..\src\vbt\VBTClass.m3 > > 0x34bf5ec 0xf71510 Scale + 0x309 in ..\src\split\HVSplit.m3 > > 0x34bf704 0xf7271c Redisplay2 + 0x3e in ..\src\split\HVSplit.m3 > > ......... ......... ... more frames ... > > (10d4.13f8): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=000003a7 ecx=0000a0c7 edx=7c90e514 esi=034bf1cc edi=005e601b > > eip=7c90120e esp=034bf1b4 ebp=034bf1cc iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k99 > > ChildEBP RetAddr > > 034bf1b0 005e6067 ntdll!DbgBreakPoint > > 034bf1cc 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 034bf1e4 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 034bf1fc 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 034bf214 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 034bf25c 005da420 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 034bf294 005da341 m3core!RTException__DefaultBackstop+0xae [..\src\runtime\common\RTException.m3 @ 41] > > 034bf2b0 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf2dc 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 034bf30c 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 034bf328 005e7bef m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 034bf354 005c54a0 m3core!RTException__Raise+0x19f [..\src\runtime\ex_frame\RTExFrame.m3 @ 58] > > 034bf390 00f51971 m3core!RTHooks__Raise+0x60 [..\src\runtime\common\RTHooks.m3 @ 79] > > 034bf3bc 00f4edcc m3ui!VBTClass__Crash+0x3e [..\src\vbt\VBTClass.m3 @ 935] > > 034bf3ec 00f6e50b m3ui!VBTClass__GetShape+0x9e [..\src\vbt\VBTClass.m3 @ 389] > > 034bf440 00f4ed66 m3ui!BorderedVBT__Shape+0x14e [..\src\split\BorderedVBT.m3 @ 79] > > 034bf480 00f6f7f8 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf4b8 00f4ed66 m3ui!FilterClass__Shape+0xdb [..\src\split\FilterClass.m3 @ 120] > > 034bf4f8 00f7e807 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf548 00f4ed66 m3ui!ButtonVBT__Shape+0x36 [..\src\split\ButtonVBT.m3 @ 105] > > 034bf588 00f71510 m3ui!VBTClass__GetShape+0x38 [..\src\vbt\VBTClass.m3 @ 385] > > 034bf5ec 00f7271c m3ui!HVSplit__Scale+0x309 [..\src\split\HVSplit.m3 @ 391] > > 034bf704 00f721a0 m3ui!HVSplit__Redisplay2+0x3e [..\src\split\HVSplit.m3 @ 503] > > 034bf734 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf7c8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bf810 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bf92c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bf95c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bf9f0 00f6f2db m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfa14 00f4cd47 m3ui!FilterClass__Reshape+0xab [..\src\split\FilterClass.m3 @85] > > 034bfaa8 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfaf0 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfc0c 00f721a0 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfc3c 00f4cd47 m3ui!HVSplit__Reshape+0xde [..\src\split\HVSplit.m3 @ 428] > > 034bfcd0 00f72b3f m3ui!VBTClass__Reshape+0x483 [..\src\vbt\VBTClass.m3 @ 154] > > 034bfd18 00f7279e m3ui!HVSplit__QuickRedisplay+0x28f [..\src\split\HVSplit.m3 @542] > > 034bfe34 00f726d6 m3ui!HVSplit__Redisplay2+0xc0 [..\src\split\HVSplit.m3 @ 505] > > 034bfe54 00f4eca1 m3ui!HVSplit__Redisplay+0x21 [..\src\split\HVSplit.m3 @ 493] > > 034bfe8c 00f56492 m3ui!VBTClass__Redisplay+0xe9 [..\src\vbt\VBTClass.m3 @ 376] > > 034bfef8 00f55eae m3ui!VBTRep__Redisplay+0x521 [..\src\vbt\VBTRep.m3 @ 653] > > 034bff24 00f55f3f m3ui!VBTRep__UncoverRedisplay+0xdd [..\src\vbt\VBTRep.m3 @ 603] > > 034bff4c 005eae96 m3ui!VBTRep__RdApply+0x8c [..\src\vbt\VBTRep.m3 @ 607] > > 034bff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 034bffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 034bffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > > > > > > > > > > > *** > > *** runtime error: > > *** <*ASSERT*> failed. > > *** file "..\src\runtime\common\RTCollector.m3", line 1666 > > *** > > Stack trace: > > FP PC Procedure > > --------- --------- ------------------------------- > > 0x290ed40 0x5d2794 SanityCheck + 0x2ad in ..\src\runtime\common\RTCollector.m3 > > 0x290ed58 0x5d24d9 After + 0x1b in ..\src\runtime\common\RTCollector.m3 > > 0x290ed78 0x5cb7f8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep.m3 > > 0x290edac 0x5d0b73 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RTCollector.m3 > > 0x290edc0 0x5d0221 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 > > 0x290ee04 0x5cfe86 CollectEnough + 0x9b in ..\src\runtime\common\RTCollector.m3 > > 0x290ee44 0x5c802c AllocTraced + 0xd7 in ..\src\runtime\common\RTAllocator.m3 > > 0x290ee80 0x5c7bb6 GetOpenArray + 0x97 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eea8 0x5c71f8 AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3 > > 0x290eee8 0x4e4025 Init + 0x135 in ..\src\rw\TextRd.m3 > > ......... ......... ... more frames ... > > (13c8.17a4): Break instruction exception - code 80000003 (first chance) > > eax=00000001 ebx=00000682 ecx=00004f95 edx=7c90e514 esi=0290eb30 edi=005e601b > > eip=7c90120e esp=0290eb18 ebp=0290eb30 iopl=0 nv up ei pl nz na po nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 > > ntdll!DbgBreakPoint: > > 7c90120e cc int 3 > > 0:007> .lines > > 0:007> k999 > > ChildEBP RetAddr > > 0290eb14 005e6067 ntdll!DbgBreakPoint > > 0290eb30 005dc33e m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] > > 0290eb48 005da08e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess.m3 @ 66] > > 0290eb60 005d9da2 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m3 @ 118] > > 0290eb78 005da661 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @40] > > 0290ebc0 005da3e1 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTException.m3 @ 79] > > 0290ebf8 005da341 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\common\RTException.m3 @ 39] > > 0290ec14 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ec40 005da46b m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ec70 005da341 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\common\RTException.m3 @ 47] > > 0290ec8c 005e7ab3 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common\RTException.m3 @ 25] > > 0290ecb8 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFrame.m3 @ 29] > > 0290ecfc 005d76cd m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHooks.m3 @ 110] > > 0290ed0c 005d2794 m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTCollector.m3 @ 393] > > 0290ed40 005d24d9 m3core!RTCollector__SanityCheck+0x2ad [..\src\runtime\common\RTCollector.m3 @ 1669] > > 0290ed58 005cb7f8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollector.m3 @ 1629] > > 0290ed78 005d0b73 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\RTHeapRep.m3 @ 59] > > 0290edac 005d0221 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runtime\common\RTCollector.m3 @ 983] > > 0290edc0 005cfe86 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RTCollector.m3 @ 724] > > 0290ee04 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RTCollector.m3 @ 654] > > 0290ee44 005c7bb6 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RTAllocator.m3 @ 366] > > 0290ee80 005c71f8 m3core!RTAllocator__GetOpenArray+0x97 [..\src\runtime\common\RTAllocator.m3 @ 294] > > 0290eea8 004e4025 m3core!RTHooks__AllocateOpenArray+0x19 [..\src\runtime\common\RTAllocator.m3 @ 141] > > 0290eee8 004e41d2 m3!TextRd__Init+0x135 [..\src\rw\TextRd.m3 @ 27] > > 0290ef14 00e84efd m3!TextRd__New+0x3e [..\src\rw\TextRd.m3 @ 40] > > 0290f034 00387f71 m3vbtkit!Rsrc__Open+0x22d [..\src\vbtkitutils\Rsrc.m3 @ 37] > > 0290f0d0 00366366 m3formsvbt!FVRuntime__Open+0x6f [..\src\FVRuntime.m3 @ 338] > > 0290f198 00372854 m3formsvbt!FormsVBT__GetRawImage+0x7e [..\src\FormsVBT.m3 @ 827] > > 0290f2a4 003634b1 m3formsvbt!FormsVBT__pPixmap+0x431 [..\src\FormsVBT.m3 @ 2001] > > 0290f304 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f354 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f438 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f464 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f4c4 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f4f0 00365e18 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f5ec 003634b1 m3formsvbt!FormsVBT__pRim+0x1af [..\src\FormsVBT.m3 @ 806] > > 0290f64c 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f678 003665e0 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290f760 003634b1 m3formsvbt!FormsVBT__pFrame+0x141 [..\src\FormsVBT.m3 @ 852] > > 0290f7c0 003813aa m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f810 0036c3d6 m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290f8f4 0036c0c8 m3formsvbt!FormsVBT__pHVBox+0x303 [..\src\FormsVBT.m3 @ 1372] > > 0290f920 003634b1 m3formsvbt!FormsVBT__pVBox+0x22 [..\src\FormsVBT.m3 @ 1353] > > 0290f980 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290f9ac 003657d5 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290faa8 003634b1 m3formsvbt!FormsVBT__pBorder+0x1af [..\src\FormsVBT.m3 @ 782] > > 0290fb08 0038107a m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fb34 003792c1 m3formsvbt!FormsVBT__OneChild+0xf8 [..\src\FormsVBT.m3 @ 3642] > > 0290fc50 003634b1 m3formsvbt!FormsVBT__pZChild+0x430 [..\src\FormsVBT.m3 @ 2572] > > 0290fcb0 00363511 m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290fd10 003813aa m3formsvbt!FormsVBT__Item+0x4eb [..\src\FormsVBT.m3 @ 254] > > 0290fd60 00377e6b m3formsvbt!FormsVBT__AddChildren+0x2d4 [..\src\FormsVBT.m3 @ 3671] > > 0290fe40 003634b1 m3formsvbt!FormsVBT__pZSplit+0x311 [..\src\FormsVBT.m3 @ 2454] > > 0290fea0 00361dab m3formsvbt!FormsVBT__Item+0x48b [..\src\FormsVBT.m3 @ 250] > > 0290ff4c 005eae96 m3formsvbt!FormsVBT__Apply+0xa3 [..\src\FormsVBT.m3 @ 84] > > 0290ff8c 005eacb6 m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\ThreadWin32.m3 @ 524] > > 0290ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\ThreadWin32.m3 @ 504] > > 0290ffec 00000000 kernel32!BaseThreadStart+0x37 > > 0:007> > > > > > > - Jay > > > > > > > > [snip] > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 05:28:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 00:28:29 -0400 Subject: [M3devel] build status on Vista Message-ID: <4AE63DA2.1E75.00D7.1@scires.com> I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 06:10:17 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 01:10:17 -0400 Subject: [M3devel] organization of scripts folder Message-ID: <4AE6476E.1E75.00D7.1@scires.com> I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 06:21:43 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Mon, 26 Oct 2009 22:21:43 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. > > So, I wound up deleting everything and checking out everything > afresh on my Windows Vista platform. > > I've run a new build against everything (all packages in > PkgInfo.txt). This is against the HEAD branch (I think). > > Here are some errors that occur during the build. > > The last two have failed in the past, but I get different output > now. The first one is new. > > C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: > quake runtime > error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line > 263: syntax err > or: "end" or "else" expected after "if" > > --procedure-- -line- -file--- > include_dir -- > 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib > \NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\m3-sys\m3cc>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > gmake --version | findstr.exe /c:"GNU Make" > 'gmake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gmake because it does not appear to be GNU make > gnumake --version | findstr.exe /c:"GNU Make" > 'gnumake' is not recognized as an internal or external command, > operable program or batch file. > rejecting gnumake because it does not appear to be GNU make > /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make > /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make > /usr/local/gmake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gmake because it does not appear to be GNU make > /usr/local/gnumake --version | findstr.exe /c:"GNU Make" > The system cannot find the path specified. > rejecting /usr/local/gnumake because it does not appear to be GNU make > make --version | findstr.exe /c:"GNU Make" > 'make' is not recognized as an internal or external command, > operable program or batch file. > rejecting make because it does not appear to be GNU make > "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line > 71: quake > untime error: no GNU make found > > --procedure-- -line- -file--- > error -- > ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ > src/gnumake > common > include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile > 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args > > Fatal Error: package build failed > > --- --- --- --- --- > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 > --- building in NT386 --- > > ignoring ..\src\m3overrides > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o Calc > Tok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C > :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcT > ok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\sr > c\m3makefile > 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT > 386\m3make.args > > Fatal Error: package build failed > > Regards, > Randy Coleburn -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 08:13:05 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 03:13:05 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> Message-ID: <4AE66434.1E75.00D7.1@scires.com> Jay: The problem is with the following line: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 Notice the weird path. The following does work: C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 Not sure why it is trying to go down the "pkg" tree to find an EXE since these are all in "bin". Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". Here is the verbose compiler output: C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 -verbose EVAL ("C:\cm3\bin\cm3.cfg") --- building in ..\NT386 --- cd ..\NT386 ignoring ..\src\m3overrides EVAL ("m3make.args") rm .M3SHIP rm .M3OVERRIDES C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcTok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src\m3makefile 5 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT386\m3make.args Fatal Error: package build failed seconds #times operation 0.01 2 removing temporary files 0.01 1 garbage collection 0.09 other --------------------------------------------------- 0.10 TOTAL rm m3make.args cd ..\src Regards, Randy Coleburn >>> 10/27/2009 1:21 AM >>> m3cc isn't supposed to build for NT, nor probably the others. I tried a simple filtering of m3cc weeks ago but it broke much, oddly. That specific error in cvsup not expected. Can you look closer and try to fix it? - Jay (phone) On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" wrote: I discovered that I wasn't getting all the updates via CVS. Not sure what when wrong, but I think it had to do with a prior update pointing to one of the release engineering branches and I couldn't seem to get it to update from the HEAD anymore. So, I wound up deleting everything and checking out everything afresh on my Windows Vista platform. I've run a new build against everything (all packages in PkgInfo.txt). This is against the HEAD branch (I think). Here are some errors that occur during the build. The last two have failed in the past, but I get different output now. The first one is new. C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 --- building in NT386 --- ignoring ..\src\m3overrides "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: quake runtime error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line 263: syntax err or: "end" or "else" expected after "if" --procedure-- -line- -file--- include_dir -- 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\m3-sys\m3cc>cm3 --- building in NT386 --- ignoring ..\src\m3overrides make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make gmake --version | findstr.exe /c:"GNU Make" 'gmake' is not recognized as an internal or external command, operable program or batch file. rejecting gmake because it does not appear to be GNU make gnumake --version | findstr.exe /c:"GNU Make" 'gnumake' is not recognized as an internal or external command, operable program or batch file. rejecting gnumake because it does not appear to be GNU make /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/pkg/bin/gmake because it does not appear to be GNU make /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/sfw/bin/gmake because it does not appear to be GNU make /usr/local/gmake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gmake because it does not appear to be GNU make /usr/local/gnumake --version | findstr.exe /c:"GNU Make" The system cannot find the path specified. rejecting /usr/local/gnumake because it does not appear to be GNU make make --version | findstr.exe /c:"GNU Make" 'make' is not recognized as an internal or external command, operable program or batch file. rejecting make because it does not appear to be GNU make "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", line 71: quake untime error: no GNU make found --procedure-- -line- -file--- error -- ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake common include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args Fatal Error: package build failed --- --- --- --- --- C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 --- building in NT386 --- ignoring ..\src\m3overrides C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o Calc Tok.i3 The system cannot find the path specified. "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime error: exit 1: C :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src\Calc.t -o CalcT ok.i3 --procedure-- -line- -file--- exec -- _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl token 73 C:\cm3\pkg\parserlib\src\parser.tmpl include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\sr c\m3makefile 4 C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\NT 386\m3make.args Fatal Error: package build failed Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:01:36 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:01:36 -0700 Subject: [M3devel] build status on Vista In-Reply-To: <4AE66434.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <352D488E-2FBF-43FF-AD01-ADF5CAB2180C@hotmail.com> <4AE66434.1E75.00D7.1@scires.com> Message-ID: <677BA053-A1E4-4EA6-849C-8941ECD9ABC5@hotmail.com> I meant cvsup but ok, that too sort of. If "program" lacks capital "p" file is only in pkg store. I'll see about the slashes. - Jay (phone) On Oct 27, 2009, at 12:13 AM, "Randy Coleburn" wrote: > Jay: > > The problem is with the following line: > > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > > Notice the weird path. > > The following does work: > > C:\cm3\bin\ktok ..\src\Calc.t -o CalcTok.i3 > > Not sure why it is trying to go down the "pkg" tree to find an EXE > since these are all in "bin". > > Suspect the bug is in "C:\cm3\pkg\cit_util\src\generics.tmpl". > > Here is the verbose compiler output: > > C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test\src>cm3 - > verbose > EVAL ("C:\cm3\bin\cm3.cfg") > --- building in ..\NT386 --- > > cd ..\NT386 > ignoring ..\src\m3overrides > > EVAL ("m3make.args") > rm .M3SHIP > rm .M3OVERRIDES > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src > \Calc.t -o CalcTok.i3 > The system cannot find the path specified. > "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime > error: exit 1: C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok > \NT386\ktok ..\src\Calc.t -o CalcTok.i3 > > --procedure-- -line- -file--- > exec -- > _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl > _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl > _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl > _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl > token 73 C:\cm3\pkg\parserlib\src\parser.tmpl > include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\src\m3makefile > 5 C:\cm3\Sandbox\caltech-parser\parserlib > \parserlib\test\NT386\m3make.args > > Fatal Error: package build failed > > seconds #times operation > 0.01 2 removing temporary files > 0.01 1 garbage collection > 0.09 other > --------------------------------------------------- > 0.10 TOTAL > > rm m3make.args > cd ..\src > > Regards, > Randy Coleburn > > > >>> 10/27/2009 1:21 AM >>> > m3cc isn't supposed to build for NT, nor probably the others. I > tried a simple filtering of m3cc weeks ago but it broke much, oddly. > That specific error in cvsup not expected. Can you look closer and > try to fix it? > > - Jay (phone) > > On Oct 26, 2009, at 9:28 PM, "Randy Coleburn" > wrote: > >> I discovered that I wasn't getting all the updates via CVS. Not >> sure what when wrong, but I think it had to do with a prior update >> pointing to one of the release engineering branches and I couldn't >> seem to get it to update from the HEAD anymore. >> >> So, I wound up deleting everything and checking out everything >> afresh on my Windows Vista platform. >> >> I've run a new build against everything (all packages in >> PkgInfo.txt). This is against the HEAD branch (I think). >> >> Here are some errors that occur during the build. >> >> The last two have failed in the past, but I get different output >> now. The first one is new. >> >> C:\cm3\Sandbox\m3-tools\cvsup\suplib>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> "C:\cm3\Sandbox\m3-tools\cvsup\suplib\NT386\m3make.args", line 4: >> quake runtime >> error: C:\cm3\Sandbox\m3-tools\cvsup\suplib\src\m3makefile, line >> 263: syntax err >> or: "end" or "else" expected after "if" >> >> --procedure-- -line- -file--- >> include_dir -- >> 4 C:\cm3\Sandbox\m3-tools\cvsup\suplib >> \NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\m3-sys\m3cc>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> gmake --version | findstr.exe /c:"GNU Make" >> 'gmake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gmake because it does not appear to be GNU make >> gnumake --version | findstr.exe /c:"GNU Make" >> 'gnumake' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting gnumake because it does not appear to be GNU make >> /usr/pkg/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/pkg/bin/gmake because it does not appear to be GNU >> make >> /usr/sfw/bin/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/sfw/bin/gmake because it does not appear to be GNU >> make >> /usr/local/gmake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gmake because it does not appear to be GNU make >> /usr/local/gnumake --version | findstr.exe /c:"GNU Make" >> The system cannot find the path specified. >> rejecting /usr/local/gnumake because it does not appear to be GNU >> make >> make --version | findstr.exe /c:"GNU Make" >> 'make' is not recognized as an internal or external command, >> operable program or batch file. >> rejecting make because it does not appear to be GNU make >> "C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/src/gnumake.common", >> line 71: quake >> untime error: no GNU make found >> >> --procedure-- -line- -file--- >> error -- >> ConfigureGNUMake 71 C:\cm3\Sandbox\m3-sys\m3cc\src\../../m3cc/ >> src/gnumake >> common >> include_dir 338 C:\cm3\Sandbox\m3-sys\m3cc\src\m3makefile >> 4 C:\cm3\Sandbox\m3-sys\m3cc\NT386\m3make.args >> >> Fatal Error: package build failed >> >> --- --- --- --- --- >> >> C:\cm3\Sandbox\caltech-parser\parserlib\parserlib\test>cm3 >> --- building in NT386 --- >> >> ignoring ..\src\m3overrides >> >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> C:\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o Calc >> Tok.i3 >> The system cannot find the path specified. >> "C:\cm3\pkg\cit_util\src\generics.tmpl", line 38: quake runtime >> error: exit 1: C >> :\cm3\bin/..\pkg\caltech-parser\parserlib\ktok\NT386\ktok ..\src >> \Calc.t -o CalcT >> ok.i3 >> >> --procedure-- -line- -file--- >> exec -- >> _exec 38 C:\cm3\pkg\cit_util\src\generics.tmpl >> _xCons 37 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tCons 70 C:\cm3\pkg\parserlib\src\parser.tmpl >> _tConsUn 71 C:\cm3\pkg\parserlib\src\parser.tmpl >> token 73 C:\cm3\pkg\parserlib\src\parser.tmpl >> include_dir 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\sr >> c\m3makefile >> 4 C:\cm3\Sandbox\caltech-parser\parserlib >> \parserlib\test\NT >> 386\m3make.args >> >> Fatal Error: package build failed >> >> Regards, >> Randy Coleburn > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Tue Oct 27 09:02:28 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Tue, 27 Oct 2009 01:02:28 -0700 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target > install > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of > platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, > CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wagner at elegosoft.com Tue Oct 27 11:57:13 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Tue, 27 Oct 2009 11:57:13 +0100 Subject: [M3devel] build status on Vista In-Reply-To: <4AE63DA2.1E75.00D7.1@scires.com> References: <4AE63DA2.1E75.00D7.1@scires.com> Message-ID: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 rcoleburn at scires.com Tue Oct 27 15:46:06 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 10:46:06 -0400 Subject: [M3devel] build status on Vista In-Reply-To: <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> References: <4AE63DA2.1E75.00D7.1@scires.com> <20091027115713.wcghkdj808s4og08@mail.elegosoft.com> Message-ID: <4AE6CE5D.1E75.00D7.1@scires.com> Olaf: I tried the -A option, but ran into a bunch of errors. Perhaps the fault lies with TortoiseCVS or CVSNT, but I could never get it to work right. I hadn't made any mods to the source tree on the Vista box, so blowing everything away and starting over didn't cause me to lose anything. Of course, that's not the case on my XP box, so I've got to get to the root of this problem at some point. Thanks for the help. Regards, Randy >>> Olaf Wagner 10/27/2009 6:57 AM >>> Quoting Randy Coleburn : > I discovered that I wasn't getting all the updates via CVS. Not > sure what when wrong, but I think it had to do with a prior update > pointing to one of the release engineering branches and I couldn't > seem to get it to update from the HEAD anymore. Branch tags are `sticky' in a workspace in CVS. To remove any sticky tags and update a workspace to the trunk again, use the option -A for update. 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 CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From rcoleburn at scires.com Tue Oct 27 16:08:39 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Tue, 27 Oct 2009 11:08:39 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> References: <4AE6476E.1E75.00D7.1@scires.com> <4F551692-B8D2-4B7A-B174-30DBE229B80F@hotmail.com> Message-ID: <4AE6D3A7.1E75.00D7.1@scires.com> I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms + +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 00:03:50 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Wed, 28 Oct 2009 16:03:50 -0700 (PDT) Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6D3A7.1E75.00D7.1@scires.com> Message-ID: <394893.44350.qm@web23608.mail.ird.yahoo.com> Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends? support already present in WebScape and DeckScape? web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed? checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. ? --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts.? Not sure if anyone else uses them. ? Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1.? Start the IDE. 2.? Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3.? Open a cm3 command shell window in a particular folder.? I've integrated this with the Explorer context menu for even greater utility. 4.? Automate building of multiple packages based on the concept of a project. etc. ? Perhaps others would have similar scripts that should be available as part of the install. ? So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included.? End users are free to use the scripts, not use them, or even remove them after the product is installed. ? What do others think? ? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. ?- Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. ? Here is the current folder structure: ? scripts +---config +---doc +---examples +---iphone |?? \---1 +---python +---regression \---win ? In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install.? Later, the other subfolders were added, including the one named "win". ? It seems there are perhaps multiple intentions for the scripts folder.? For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3.? There are other scripts that would be useful for certain target platforms as part of the installed system.? There may be other scripts useful for testing. ? I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms.? This script will replace some of the old ones I have out there.? It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista.? I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. ? Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. ? As a first cut, I propose something along the following lines: ? scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin +???+---windows = dev scripts written for Microsoft Windows (BAT, CMD) +?? +---posix = dev scripts written for unix shell (sh, bash, etc.) +?? \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install +?? +---common = scripts common to all target platforms+???+---windows = BAT/CMD scripts for Microsoft Windows +?? +---posix = shell scripts for POSIX platforms (sh, bash, etc.) +?? +---python = scripts written in python (applicable to any platform with python) +?? \---XXX = scripts for target platform XXX (XXX is name of platform) +???????????? (assuming XXX needs something special not covered above) \---test = scripts used for regression testing ????+---windows = test scripts written for Microsoft Windows (BAT, CMD) ??? +---posix = test scripts written for unix shell (sh, bash, etc.) ??? \---python = test scripts written in python ? What do you think? ? Regards, Randy Coleburn ? ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dabenavidesd at yahoo.es Thu Oct 29 06:00:34 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 05:00:34 +0000 (GMT) Subject: [M3devel] organization of scripts folder Message-ID: <689127.6955.qm@web23601.mail.ird.yahoo.com> To be clearer and explain with some video material about embedded Obliq in DeckScape mail news and web browser, take a look at: SRC Video Report 141b that accompanied SRC Research Report 142, Collaborative Active Textbooks available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-142.html the digitized videotape from here uploaded by the author: http://www.youtube.com/watch?v=hbxjYq1YK38 Now about Webcard by Marc Brown the integrated mail reader with folders (tags), news reader and web browser described in SRC Research Report 139a available from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/SRC-139a.html and the digitized Video report 139b from: http://www.ibiblio.org/openvideo/video/chi/chi97_03_m1.mpg Also a feature SRC Research Report 140, Zippers from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-140.html And the SRC Research Report 135a, DeckScape: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-135a.html and its accompanying digitized videotape, Video Report 135b from: http://www.open-video.org/details.php?videoid=5024 Related with Zeus, SRC Research Report 75, algorithm animation system related with distributed active objects application from: http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-075.html and a closely related digitized videotape from: http://open-video.org/details.php?videoid=8118 Also the SRC Research Report 110a, Algorithm Animation Using 3D Interactive Graphics available from http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-110a.html and the accompanying SRC Video Report 110b http://www.youtube.com/watch?v=zIgu9q0vVc0 besides the closely related and obliq based SRC Research Report 128a, A Library for Visualizing Combinatorial Structures http://apotheca.hpl.hp.com/ftp/pub/DEC/SRC/research-reports/abstracts/src-rr-128a.html and the accompanying SRC Video Report 128b http://www.youtube.com/watch?v=EIOrizawnsc And two videos more for other applications made on Forms VBt: http://www.open-video.org/details.php?videoid=8107 and trestle: http://www.open-video.org/details.php?videoid=8143 Thanks in advance and hope it helps to better document video reports --- El mi?, 28/10/09, Daniel Alejandro Benavides D. escribi?: De: Daniel Alejandro Benavides D. Asunto: Re: [M3devel] organization of scripts folder Para: "" , "Randy Coleburn" Fecha: mi?rcoles, 28 octubre, 2009 6:03 Hi Randy: I think your idea sounds great, maybe scripts package structure clean up could help to define a "category" rather than an individual package in CM3IDE as a framework for scripting with quake, obliq, visualobliq, obliq-3d and friends, but as the CM3 builder powered support for scripting of quake, obliq and friends support already present in WebScape and DeckScape web browser programs that would help to develop "addons" for CM3IDE such as allowing distributed checking of M3, obliq, etc programs with Showheap, Shownew and Showthread views allowed for each program running; a "deck" (tab) per program of a given CM3IDE server on the web client DeckScape or WebScape browser just standalone or distributed view of it, giving the system a world of tools to delevop distributed served M3, obliq, etc programs. That would be aplus besides the bash/bat command line language scripts and others to mantain the core system by itself without CM3IDE This new category (Scripts) could help in checking the scripting facilities in CM3IDE and further enhancements in terms of components, like those you are telling, Explorer context menu integration and possible similar add ons for Mozilla family and others like email readers and web browsers developed at DEC. As the examples Category is already present in CM3IDE would be nice to put the example scripts you mention to test CM3 system scripts for bootstraping, upgrading, testing and misc. processes to aid debugging (runtime views of M3 program parameters). Whether they can run in a common web browser interface would require harder work to make it inside CM3IDE or easier in DeckScape and WebScape web browsers. Actually hard work was made by professor Tian Zhao (UW-Milwaukee) and professor Jens Parlsberg ( Purdue University) to do type inference in NP-time for no-explicit typed obliq scripts, giving us an opportunity to implement it and help the compile/run process of obliq scripts (potentially giving an ahead of time ability to check and accept or reject some scripts) and why not, write distributed platform-independent no-explicitly typed code to produce the explicitly typed and reduce runtime overhead for better performance and improved documentation of obliq and friends scripts. Thanks in advance, hope it helps and generate some further rethinking of system scripts and new ideas on quake, obliq and friends to aid the CM3 and CM3IDE scripting engine integration enhancements. --- El mar, 27/10/09, Randy Coleburn escribi?: De: Randy Coleburn Asunto: Re: [M3devel] organization of scripts folder Para: "" Fecha: martes, 27 octubre, 2009 10:08 I install some of my scripts. Not sure if anyone else uses them. Nonetheless, I know that for me some of these scripts make cm3 easier to use on Windows. For example, I have scripts that: 1. Start the IDE. 2. Set up all the paths and environment variables for operating cm3 and Microsoft linker / Visual Studio at the command shell. 3. Open a cm3 command shell window in a particular folder. I've integrated this with the Explorer context menu for even greater utility. 4. Automate building of multiple packages based on the concept of a project. etc. Perhaps others would have similar scripts that should be available as part of the install. So, I'm suggesting here that we make a conscious choice on a standardized way for folks to contribute such scripts with the intent that when the installs are built that these scripts get included. End users are free to use the scripts, not use them, or even remove them after the product is installed. What do others think? Regards, Randy Coleburn >>> 10/27/2009 4:02 AM >>> None of the scripts are installed. - Jay (phone) On Oct 26, 2009, at 10:10 PM, "Randy Coleburn" wrote: I would like to better understand the rationale behind the "scripts" folder in terms of how it is organized and supposed to be used. Here is the current folder structure: scripts +---config +---doc +---examples +---iphone | \---1 +---python +---regression \---win In the past, I had put some BAT/CMD scripts in the "scripts" folder with the intent that these would be placed in the "bin" folder of the target install. Later, the other subfolders were added, including the one named "win". It seems there are perhaps multiple intentions for the scripts folder. For example, there are scripts that one would use mainly in setting up, maintaining, or administering cm3. There are other scripts that would be useful for certain target platforms as part of the installed system. There may be other scripts useful for testing. I am almost finished with testing of a new script I want to be included in the "bin" folder of the installed system on Windows platforms. This script will replace some of the old ones I have out there. It is designed to work with Win2000, WinXP, and Vista, whereas my old scripts don't work well on Vista. I also have some scripts I've built that aid in rebuilding package sets based on the PkgInfo.txt file. Before I remove my old scripts and replace them with the new ones, I thought it best for us to think about how the scripts folder should be organized. As a first cut, I propose something along the following lines: scripts +---doc = documentation for stuff in the "scripts" folder tree +---dev = scripts used for system development, maintenance, admin + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) + +---posix = dev scripts written for unix shell (sh, bash, etc.) + \---python = dev scripts written in python +---install = scripts that should be put in "bin" folder of target install + +---common = scripts common to all target platforms+ +---windows = BAT/CMD scripts for Microsoft Windows + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) + +---python = scripts written in python (applicable to any platform with python) + \---XXX = scripts for target platform XXX (XXX is name of platform) + (assuming XXX needs something special not covered above) \---test = scripts used for regression testing +---windows = test scripts written for Microsoft Windows (BAT, CMD) +---posix = test scripts written for unix shell (sh, bash, etc.) \---python = test scripts written in python What do you think? Regards, Randy Coleburn From wagner at elegosoft.com Thu Oct 29 10:14:51 2009 From: wagner at elegosoft.com (Olaf Wagner) Date: Thu, 29 Oct 2009 10:14:51 +0100 Subject: [M3devel] organization of scripts folder In-Reply-To: <4AE6476E.1E75.00D7.1@scires.com> References: <4AE6476E.1E75.00D7.1@scires.com> Message-ID: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Hi Randy, I think it is a good idea to clean up and restructure the scripts folder. The current layout has grown and was never 'designed'. However, we should make sure that nothing breaks when we move scripts around, especially for regression testing in Tinderbox and Hudson. So changing things is fine as long as we consider and correct the potential damage. As a backup, we could provide a script which creates symbolic links for some current scripts which are called from outside the scripts package itself in our test frameworks. Olaf Quoting Randy Coleburn : > I would like to better understand the rationale behind the "scripts" > folder in terms of how it is organized and supposed to be used. > > Here is the current folder structure: > > scripts > +---config > +---doc > +---examples > +---iphone > | \---1 > +---python > +---regression > \---win > > In the past, I had put some BAT/CMD scripts in the "scripts" folder > with the intent that these would be placed in the "bin" folder of > the target install. Later, the other subfolders were added, > including the one named "win". > > It seems there are perhaps multiple intentions for the scripts > folder. For example, there are scripts that one would use mainly in > setting up, maintaining, or administering cm3. There are other > scripts that would be useful for certain target platforms as part of > the installed system. There may be other scripts useful for testing. > > I am almost finished with testing of a new script I want to be > included in the "bin" folder of the installed system on Windows > platforms. This script will replace some of the old ones I have out > there. It is designed to work with Win2000, WinXP, and Vista, > whereas my old scripts don't work well on Vista. I also have some > scripts I've built that aid in rebuilding package sets based on the > PkgInfo.txt file. > > Before I remove my old scripts and replace them with the new ones, I > thought it best for us to think about how the scripts folder should > be organized. > > As a first cut, I propose something along the following lines: > > scripts > +---doc = documentation for stuff in the "scripts" folder tree > +---dev = scripts used for system development, maintenance, admin > + +---windows = dev scripts written for Microsoft Windows (BAT, CMD) > + +---posix = dev scripts written for unix shell (sh, bash, etc.) > + \---python = dev scripts written in python > +---install = scripts that should be put in "bin" folder of target install > > + +---common = scripts common to all target platforms > + +---windows = BAT/CMD scripts for Microsoft Windows > + +---posix = shell scripts for POSIX platforms (sh, bash, etc.) > + +---python = scripts written in python (applicable to any > platform with python) > + \---XXX = scripts for target platform XXX (XXX is name of platform) > + (assuming XXX needs something special not covered above) > \---test = scripts used for regression testing > +---windows = test scripts written for Microsoft Windows (BAT, CMD) > +---posix = test scripts written for unix shell (sh, bash, etc.) > \---python = test scripts written in python > > What do you think? > > Regards, > Randy Coleburn -- 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 hendrik at topoi.pooq.com Thu Oct 29 15:40:56 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Thu, 29 Oct 2009 10:40:56 -0400 Subject: [M3devel] organization of scripts folder In-Reply-To: <20091029101451.1677xztj1w884w04@mail.elegosoft.com> References: <4AE6476E.1E75.00D7.1@scires.com> <20091029101451.1677xztj1w884w04@mail.elegosoft.com> Message-ID: <20091029144056.GA24509@topoi.pooq.com> On Thu, Oct 29, 2009 at 10:14:51AM +0100, Olaf Wagner wrote: > Hi Randy, > > I think it is a good idea to clean up and restructure the scripts > folder. The current layout has grown and was never 'designed'. Speaking as a naive Modula 3 user and installer (well, not so naive after all these years), I found the scripts confusing. The biggest problem was to distinguish scripts that were meant to be used directly by the user and those meant to be used by other scripts. I also found that the scripts were not adequately documented -- oh, they were documented enough that once you were familiar with them, you'd know where to look for detaile you had forgotten, but not so a beginner would find it easy to figure which to use in the first place. Any documentation of reorganisation that makes these distinctions clear would be welcome. > > However, we should make sure that nothing breaks when we move scripts > around, especially for regression testing in Tinderbox and Hudson. Well, if reorganising makes it easier to get our current release through regression testing, I'm all for it. But I'd say it's really important to get a release out -- at the moment we don't really have one that's adequate for someone newly sold on the merits of Modula 3. So if there's a signoficant risk of a reorganisatin delaying things, perhaps we should hold off a bit. It seems that the current RC3 is not really adequate -- important components like m3gdb don't install properly from the binary downloads directory. And RC4 is held up on regression testing which shows significant problems in a few packages (Juno ocmes to ming). These problems appear to involve the interaction between the package, garbage colletion, multitasking, and the details of particular platforms. They are difficult problems, and it is not at all clear that they can be solved quickly, or even whether they are regressions. I'd very much like to see a RC4 that fixes the problems we've already fixed in RC3. Some of them seem to be installation issues. At least, with a current RC4, flaws and all, we would know for sure whether the installation problems in RC3 have really been fixed. > So changing things is fine as long as we consider and correct the > potential damage. As a backup, we could provide a script which creates > symbolic links for some current scripts which are called from outside > the scripts package itself in our test frameworks. That could help. -- hendrik > > Olaf > From rcoleburn at scires.com Thu Oct 29 20:26:29 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Thu, 29 Oct 2009 15:26:29 -0400 Subject: [M3devel] non-deterministic behavior on Windows Message-ID: <4AE9B312.1E75.00D7.1@scires.com> Something is wrong, but I don't know what yet. I'm seeing non-deterministic behavior on Windows XP and Vista. I am building against the head branch. On multiple runs of each build cycle, I am getting different errors. That is, sometime a package will fail to build/ship on one build cycle, then it will work on the next. I've even gone back and tried to rebuild or reship individual packages that failed and most always they will build or ship fine. For a while, I thought it might be my antivirus program. But I am getting same behavior on two different machines and each machine has a different AV program. I'll keep investigating, but something is definitely wrong. I am going to try uninstalling my AV program on one machine just to see if that makes any difference. Regards, Randy Coleburn CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Thu Oct 29 22:32:52 2009 From: jay.krell at cornell.edu (jay.krell at cornell.edu) Date: Thu, 29 Oct 2009 14:32:52 -0700 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <4AE9B312.1E75.00D7.1@scires.com> References: <4AE9B312.1E75.00D7.1@scires.com> Message-ID: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> AV programs are notorious for seemingly nondeterministic problems. Sharing violation? Access denied? File not found? Definitely try disabling or uninstalling them. - Jay (phone) On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" wrote: > Something is wrong, but I don't know what yet. > > I'm seeing non-deterministic behavior on Windows XP and Vista. > > I am building against the head branch. > > On multiple runs of each build cycle, I am getting different > errors. That is, sometime a package will fail to build/ship on one > build cycle, then it will work on the next. > > I've even gone back and tried to rebuild or reship individual > packages that failed and most always they will build or ship fine. > > For a while, I thought it might be my antivirus program. But I am > getting same behavior on two different machines and each machine has > a different AV program. > > I'll keep investigating, but something is definitely wrong. > > I am going to try uninstalling my AV program on one machine just to > see if that makes any difference. > > Regards, > Randy Coleburn From dabenavidesd at yahoo.es Thu Oct 29 23:20:32 2009 From: dabenavidesd at yahoo.es (Daniel Alejandro Benavides D.) Date: Thu, 29 Oct 2009 22:20:32 +0000 (GMT) Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> Message-ID: <552644.47206.qm@web23601.mail.ird.yahoo.com> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > From rcoleburn at scires.com Fri Oct 30 05:25:50 2009 From: rcoleburn at scires.com (Randy Coleburn) Date: Fri, 30 Oct 2009 00:25:50 -0400 Subject: [M3devel] non-deterministic behavior on Windows In-Reply-To: <552644.47206.qm@web23601.mail.ird.yahoo.com> References: <19C0A298-300C-4ABA-B881-5725350A368D@hotmail.com> <552644.47206.qm@web23601.mail.ird.yahoo.com> Message-ID: <4AEA3164.1E75.00D7.1@scires.com> Ok, I think maybe the AntiVirus is causing the problems. I upgraded to a new version of my AV program a couple of weeks ago. After uninstalling it completely, the builds seem to work again. Perhaps the trouble is due to fact that I "upgraded" an in-place installation instead of first uninstalling completely. I am going to try and reinstall my AV program and see how it fares. Regards, Randy >>> "Daniel Alejandro Benavides D." 10/29/2009 6:20 PM >>> Hi all: without fear for being non-respectful, that thing is not quite right and certainly not always possible, could be that you have a worm or agent in your system, like a program infecting more and more each time (believe it happens many times). Are the machines net interconnected (LAn or WAN)? I would prefer to say, I think IMHO, better to say, virus programs (or try a brand new machine).... Hope it helps, --- El jue, 29/10/09, jay.krell at cornell.edu escribi?: > De: jay.krell at cornell.edu > Asunto: Re: [M3devel] non-deterministic behavior on Windows > Para: "Randy Coleburn" > CC: "" > Fecha: jueves, 29 octubre, 2009 4:32 > AV programs are notorious for > seemingly nondeterministic problems. Sharing violation? > Access denied? File not found? Definitely try disabling or > uninstalling them. > > - Jay (phone) > > On Oct 29, 2009, at 12:26 PM, "Randy Coleburn" > wrote: > > > Something is wrong, but I don't know what yet. > > > > I'm seeing non-deterministic behavior on Windows XP > and Vista. > > > > I am building against the head branch. > > > > On multiple runs of each build cycle, I am getting > different errors. That is, sometime a package will > fail to build/ship on one build cycle, then it will work on > the next. > > > > I've even gone back and tried to rebuild or reship > individual packages that failed and most always they will > build or ship fine. > > > > For a while, I thought it might be my antivirus > program. But I am getting same behavior on two > different machines and each machine has a different AV > program. > > > > I'll keep investigating, but something is definitely > wrong. > > > > I am going to try uninstalling my AV program on one > machine just to see if that makes any difference. > > > > Regards, > > Randy Coleburn > CONFIDENTIALITY NOTICE: This email and any attachments are intended solely for the use of the named recipient(s). This e-mail may contain confidential and/or proprietary information of Scientific Research Corporation. If you are not a named recipient, you are prohibited from making any use of the information in the email and attachments. If you believe you have received this email in error, please notify the sender immediately and permanently delete the email, any attachments, and all copies thereof from any drives or storage media and destroy any printouts of the email or attachments. EXPORT COMPLIANCE NOTICE: This email and any attachments may contain technical data subject to U.S export restrictions under the International Traffic in Arms Regulations (ITAR) or the Export Administration Regulations (EAR). Export or transfer of this technical data and/or related information to any foreign person(s) or entity(ies), either within the U.S. or outside of the U.S., may require export authorization by the appropriate U.S. Government agency prior to export or transfer. In addition, technical data may not be exported or transferred to certain countries or specified designated nationals identified by U.S. embargo controls without prior export authorization. By accepting this email and any attachments, all recipients confirm that they understand and will comply with all applicable ITAR, EAR and embargo compliance requirements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 14:40:30 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? Message-ID: I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 15:21:43 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From jay.krell at cornell.edu Sat Oct 31 17:07:29 2009 From: jay.krell at cornell.edu (Jay K) Date: Sat, 31 Oct 2009 16:07:29 +0000 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: ok, it's not always 12 bytes in and 4b4. but anyway.. Tony does this make sense? And the atached? I seem to have it failing on an almost consistent address now. So I set write breakpoints "around" it. The object is often at 0x1cf0008. So I set write breakpoints at 0x1cf0000, 0x1cf0004, 0x1cf0008. All the writes are within RTCollector. Hm. Or so I thought. The first few are not always. Surely some of the writes are correct. And some are not? I attached a debugging log. It just goes like: bp main g ba w4 0x1cf0000 "k;g" ba w4 0x1cf0004 "k;g" ba w4 0x1cf0008 "k;g" g I also tried: ba w4 0x1cf0008 "~*k;g" etc. to get all stacks but it didn't seem useful. You know, what if two threads touch an address at about the same time? The debugger might be ambiguous. But it seems nothing else was nearby. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 14:21:43 +0000 Subject: Re: [M3devel] debugging paranoidgc? The pointer is always 12 bytes into a page. The typecode is always 0x4b4. I'll see what type that is. - Jay From: jay.krell at cornell.edu To: hosking at cs.purdue.edu; m3devel at elegosoft.com Date: Sat, 31 Oct 2009 13:40:30 +0000 Subject: [M3devel] debugging paranoidgc? I'm not sure why/what-changed and maybe this is good, maybe this is bad, but Juno is now crashing for me every time on Windows with @paranoidgc. Tips to debug it? Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 Copyright (c) Microsoft Corporation. All rights reserved. CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete @M3paranoidgc Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols Executable search path is: ModLoad: 00400000 004c7000 Juno.exe ModLoad: 7c900000 7c9b2000 ntdll.dll ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL *** *** runtime error: *** <*ASSERT*> failed. *** file "..\src\runtime\common\RTCollector.m3", line 1729 *** Stack trace: FP PC Procedure --------- --------- ------------------------------- 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src\runtime\common\R TCollector.m3 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common\RTHeapMap.m3 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common\RTHeapMap.m3 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common\RTHeapMap.m3 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common\RTHeapMap.m3 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common\RTCollector.m 3 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common\RTCollector.m3 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common\RTHeapRep. m3 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src\runtime\common\RT Collector.m3 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common\RTCollector.m3 ......... ......... ... more frames ... (d40.9d8): Break instruction exception - code 80000003 (first chance) eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 edi=005e5d8b eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 ntdll!DbgBreakPoint: 7c90120e cc int 3 0:000> .lines Line number information will be loaded 0:000> ~*k999 . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen ChildEBP RetAddr 0012f4d4 005e5dd7 ntdll!DbgBreakPoint 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime\WIN32\RTOS.m3 @ 29] 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common\RTProcess. m3 @ 66] 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime\common\RTError.m 3 @ 118] 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common\RTError.m3 @ 40] 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime\common\RTExcep tion.m3 @ 79] 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src\runtime\commo n\RTException.m3 @ 39] 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src\runtime\commo n\RTException.m3 @ 47] 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src\runtime\common \RTException.m3 @ 25] 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime\ex_frame\RTExFr ame.m3 @ 29] 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime\common\RTHook s.m3 @ 110] 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime\common\RTColl ector.m3 @ 393] 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 [..\src\runt ime\common\RTCollector.m3 @ 1730] 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common\RTHeapMap. m3 @ 202] 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime\common\RTHeap Map.m3 @ 62] 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime\common\RTHeap Map.m3 @ 57] 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime\common\RTHeapM ap.m3 @ 47] 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src\runtime\common\R TCollector.m3 @ 1658] 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime\common\RTCollec tor.m3 @ 1630] 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src\runtime\common\ RTHeapRep.m3 @ 59] 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 [..\src\runti me\common\RTCollector.m3 @ 983] 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src\runtime\common\RT Collector.m3 @ 724] 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src\runtime\common\RT Collector.m3 @ 654] 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src\runtime\common\RT Allocator.m3 @ 366] 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src\runtime\common\R TAllocator.m3 @ 224] 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src\runtime\common\ RTAllocator.m3 @ 120] 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src\JunoCompile. m3 @ 254] 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ 174] 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ 263] 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime\common\RTLi nker.m3 @ 399] 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime\common\RTLinker .m3 @ 113] 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime\common\RTLinker. m3 @ 122] 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] 0012ffc0 7c817077 Juno!mainCRTStartup+0xff 0012fff0 00000000 kernel32!BaseProcessStart+0x23 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 01b0fecc 7e4191be ntdll!KiFastSystemCallRet 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src\winvbt\WinTrestl e.m3 @ 2448] 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread\WIN32\Threa dWin32.m3 @ 524] 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread\WIN32\Threa dWin32.m3 @ 504] 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 0:000> Out of ignorance I might try to remove Trestle uses and see if it still crashes. But that might also be difficult. (I did remove the filewatcher and metermaid threads.) - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 1.log Type: application/octet-stream Size: 25716 bytes Desc: not available URL: From mika at async.async.caltech.edu Sat Oct 31 17:11:42 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:11:42 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site Message-ID: <20091031161142.57E771A2097@async.async.caltech.edu> Hello m3devel, I'm running into problems with the current release candidate. I'm attaching a backtrace from one crash, but I think I also am seeing deadlocks in the threading system---my application goes catatonic. Of course it *is* possible it's a bug in my application, but it works on PM3 and on CM3 on PPC_DARWIN. Finally I'm still concerned about threading performance but in the light of the bugs it's hard to say much about it yet, I think... (The program in question is a highly multithreaded stock market simulator.) Mika ============================================================ *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) show args Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". (m3gdb) where #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. ) at ../src/runtime/common/RTProcess.m3:65 #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. ) at ../src/runtime/common/RTError.m3:118 #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTError.m3:40 #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:79 #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:39 #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:47 #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/common/RTException.m3:25 #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. ) at ../src/runtime/ex_frame/RTExFrame.m3:29 #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. ) at ../src/runtime/common/RTHooks.m3:110 #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. ) from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:116 #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktIsolator.m3:514 #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. ) at ../src/Main.m3:734 #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:400 #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. ) at ../src/runtime/common/RTLinker.m3:114 #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. ) at ../src/runtime/common/RTLinker.m3:123 ---Type to continue, or q to quit--- #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 #23 0x00000000004040de in _start () (m3gdb) up 15 #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) at ../src/thread/PTHREAD/ThreadPThread.m3:589 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; Current language: auto; currently Modula-3 (m3gdb) print r $1 = 11 (m3gdb) ============================================================ From mika at async.async.caltech.edu Sat Oct 31 17:15:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 09:15:14 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <20091031161514.C7E441A2097@async.async.caltech.edu> More details about the "catatonic" case. It's pretty bad. Even ctrl-\ won't wake it up properly. Ctrl-\ is supposed to cause the program to abort and dump core. It does nothing to my program now! And I think I've "lost threads" before, too. Btw, (90)ginger:~/t>uname -a FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 I'm happy to help debug if someone can give me some pointers... Mika ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) cont Continuing. *** *** runtime error: *** aborted ^\ Program received signal SIGQUIT, Quit. 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 (m3gdb) where #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 #2 0x0000000803780da0 in ThreadPThread__sigsuspend () at ../src/thread/PTHREAD/ThreadPThreadC.c:117 #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code 28 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 #4 #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:217 #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in symbol table. ) at ../src/SX.m3:152 #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktAsset.m3:117 #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in symbol table. ) at ../src/MktPlace.m3:469 #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code 35 in symbol table. ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 #16 0x0000000000000000 in ?? () (m3gdb) Mika Nystrom writes: >Hello m3devel, > >I'm running into problems with the current release candidate. >I'm attaching a backtrace from one crash, but I think I also am seeing >deadlocks in the threading system---my application goes catatonic. >Of course it *is* possible it's a bug in my application, but it works >on PM3 and on CM3 on PPC_DARWIN. > >Finally I'm still concerned about threading performance but in the light >of the bugs it's hard to say much about it yet, I think... > >(The program in question is a highly multithreaded stock market >simulator.) > > Mika > >============================================================ > >*** >*** runtime error: >*** <*ASSERT*> failed. >*** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >*** > > >Program received signal SIGABRT, Aborted. >0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >(m3gdb) show args >Argument list to give program being debugged when it is started is "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None -symbology ric -symbology tws > -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". >(m3gdb) where >#0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >#1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >#2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >#3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in symbol table. >) at ../src/runtime/common/RTProcess.m3:65 >#4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 in symbol table. >) at ../src/runtime/common/RTError.m3:118 >#5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTError.m3:40 >#6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:79 >#7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:39 >#8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:47 >#11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/common/RTException.m3:25 >#12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in symbol table. >) at ../src/runtime/ex_frame/RTExFrame.m3:29 >#13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type code 35 in symbol table. >) at ../src/runtime/common/RTHooks.m3:110 >#14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 in symbol table. >) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >#15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 in symbol table. >) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >#16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktPlace.m3:116 >#17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in symbol table. >) at ../src/MktIsolator.m3:514 >#18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in symbol table. >) at ../src/Main.m3:734 >#19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:400 >#20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table. >) at ../src/runtime/common/RTLinker.m3:114 >#21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in symbol table. >) at ../src/runtime/common/RTLinker.m3:123 >---Type to continue, or q to quit--- >#22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, envp=0x7fffffffdf50) at _m3main.mc:4 >#23 0x00000000004040de in _start () >(m3gdb) up 15 >#15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 >589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; >Current language: auto; currently Modula-3 >(m3gdb) print r >$1 = 11 >(m3gdb) > >============================================================ > > From mika at async.async.caltech.edu Sat Oct 31 19:02:14 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:02:14 -0700 Subject: [M3devel] m3 RC In-Reply-To: <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> Message-ID: <20091031180214.87E3B1A209C@async.async.caltech.edu> Hi Tony, Yes the thing I just posted to m3devel has @M3paranoidgc. Mika Tony Hosking writes: >That assertion failure is a serious violation of the collector >invariants an suggests that a reference from the stack has not been >processed properly. Is there are red zone on AMD64_FreeBSD? Can you >try running @M3paranoidgc to force heavy checking of GC invariants? > > >On 31 Oct 2009, at 00:46, Mika Nystrom wrote: > >> >> Hi Jay & Tony, sorry to do this but I sent this email to m3devel and I >> don't think it went through. I thought you might be interested :) >> >> Mika >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: RTCollector problems in 5.8.3 RC >> Date: Thu, 29 Oct 2009 13:07:53 -0700 >> From: Mika Nystrom >> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >> >> Hello again, >> >> Well I installed the whole archive from the RC and recompiled rather >> than trying to update to the head. >> >> Here are the files I installed from: >> >> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >> cm3-src-all-5.8.3-RC3.tgz >> >> And this gets much further. Mentor works, e.g. >> >> But after running one of my programs for a while I see the following >> troubling stuff. I don't think the code is doing anything >> particularly >> strange... (this particular code is involved in recycling cons cells >> in >> the Scheme interpreter rather than leaving them for the GC). >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/runtime/common/RTCollector.m3", line 2284 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> re >> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >> code 46 in symbol table. >> ) at ../src/runtime/common/RTCollector.m3:2284 >> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:711 >> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/SchemePrimitive.m3:550 >> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:574 >> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:664 >> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/Scheme.m3:461 >> - ---Type to continue, or q to quit--- >> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/Scheme.m3:344 >> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >> 26 in symbol table. >> ) at ../src/Scheme.m3:592 >> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMSCode.m3:176 >> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/GCOMS.m3:225 >> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >> #29 0x0000000000000000 in ?? () >> (m3gdb) up 16 >> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >> cons=16_00007ffff1dbcc30) >> at ../src/Scheme.m3:711 >> 711 t.freePairs := cons >> Current language: auto; currently Modula-3 >> (m3gdb) print cons >> $1 = 16_00007ffff1dbcc30 >> (m3gdb) print t.freePairs >> Object has no field or method named "freePairs". >> (m3gdb) whatis cons >> type = GCOMSCode.Pair >> (m3gdb) print t >> $2 = (*16_0000000806b82018*) OBJECT END >> (m3gdb) list >> 706 END; >> 707 >> 708 p.first := SYMrip; >> 709 >> 710 p.rest := t.freePairs; >> 711 t.freePairs := cons >> 712 END >> 713 END ReturnCons; >> 714 >> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >> { E } = >> (m3gdb) >> ... >> (m3gdb) list >> 2279 INC(checkStoreTraced); (* race, so only >> approximate *) >> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >> PageToRef(p) DO >> 2281 TRY >> 2282 RTOS.LockHeap(thread^); >> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >> 2284 <*ASSERT NOT h.gray*> <===== here >> 2285 WITH d = page.desc DO >> 2286 IF h.dirty THEN >> 2287 <*ASSERT NOT d.clean*> >> 2288 ELSE >> (m3gdb) >> >> top shows: >> >> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >> COMMAND >> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >> gcomsmaster >> >> Mika >> >> ------- End of Forwarded Message > From hosking at cs.purdue.edu Sat Oct 31 19:05:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:05:55 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180214.87E3B1A209C@async.async.caltech.edu> References: <20091031044640.127B11A2097@async.async.caltech.edu> <53A7A217-214B-46B6-AB10-E9FF8FEF7794@cs.purdue.edu> <20091031180214.87E3B1A209C@async.async.caltech.edu> Message-ID: <00188550-EFBC-43DD-9F4B-1F11163DDD52@cs.purdue.edu> Can you try to update to the latest ThreadPThread on the RC branch? It looks like you are using an older one. On 31 Oct 2009, at 14:02, Mika Nystrom wrote: > Hi Tony, > > Yes the thing I just posted to m3devel has @M3paranoidgc. > > Mika > > Tony Hosking writes: >> That assertion failure is a serious violation of the collector >> invariants an suggests that a reference from the stack has not been >> processed properly. Is there are red zone on AMD64_FreeBSD? Can you >> try running @M3paranoidgc to force heavy checking of GC invariants? >> >> >> On 31 Oct 2009, at 00:46, Mika Nystrom wrote: >> >>> >>> Hi Jay & Tony, sorry to do this but I sent this email to m3devel >>> and I >>> don't think it went through. I thought you might be interested :) >>> >>> Mika >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 5BB5D1A2094; Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 577E01A2091; >>> Thu, 29 Oct 2009 13:07:53 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: RTCollector problems in 5.8.3 RC >>> Date: Thu, 29 Oct 2009 13:07:53 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029200753.5BB5D1A2094 at async.async.caltech.edu> >>> >>> Hello again, >>> >>> Well I installed the whole archive from the RC and recompiled rather >>> than trying to update to the head. >>> >>> Here are the files I installed from: >>> >>> cm3-bin-core-AMD64_FREEBSD-5.8.3-RC3.tgz >>> cm3-src-all-5.8.3-RC3.tgz >>> >>> And this gets much further. Mentor works, e.g. >>> >>> But after running one of my programs for a while I see the following >>> troubling stuff. I don't think the code is doing anything >>> particularly >>> strange... (this particular code is involved in recycling cons cells >>> in >>> the Scheme interpreter rather than leaving them for the GC). >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/runtime/common/RTCollector.m3", line 2284 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> re >>> #0 0x0000000805c5aa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000805ce9f8b in abort () from /lib/libc.so.7 >>> #2 0x0000000804732bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x0000000804726615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000804723ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008047237aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000804723f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000804723c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000804723cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000804723b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000804733eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x000000080470b241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000804721026 in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080471dddf in CheckStoreTraced (dst=Invalid C/C++ type >>> code 46 in symbol table. >>> ) at ../src/runtime/common/RTCollector.m3:2284 >>> #16 0x0000000801be7cc7 in ReturnCons (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:711 >>> #17 0x0000000801bff957 in Apply2 (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/SchemePrimitive.m3:550 >>> #18 0x0000000801beaa9c in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:574 >>> #19 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #20 0x0000000801be87b4 in ReduceCond (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:664 >>> #21 0x0000000801be9bd4 in EvalInternal (t=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/Scheme.m3:461 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000801beaea4 in Eval (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/Scheme.m3:344 >>> #23 0x0000000801be6f7b in EvalInGlobalEnv (t=Invalid C/C++ type code >>> 26 in symbol table. >>> ) at ../src/Scheme.m3:592 >>> #24 0x000000080067505a in Run (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMSCode.m3:176 >>> #25 0x0000000800666a17 in MApply (mr=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/GCOMS.m3:225 >>> #26 0x0000000804737df3 in RunThread (me=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>> #27 0x0000000804737a6a in ThreadBase (param=Invalid C/C++ type code >>> 35 in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>> #28 0x0000000805af94d1 in pthread_getprio () from /lib/libthr.so.3 >>> #29 0x0000000000000000 in ?? () >>> (m3gdb) up 16 >>> #16 0x0000000801be7cc7 in ReturnCons (t=16_0000000806b82018, >>> cons=16_00007ffff1dbcc30) >>> at ../src/Scheme.m3:711 >>> 711 t.freePairs := cons >>> Current language: auto; currently Modula-3 >>> (m3gdb) print cons >>> $1 = 16_00007ffff1dbcc30 >>> (m3gdb) print t.freePairs >>> Object has no field or method named "freePairs". >>> (m3gdb) whatis cons >>> type = GCOMSCode.Pair >>> (m3gdb) print t >>> $2 = (*16_0000000806b82018*) OBJECT END >>> (m3gdb) list >>> 706 END; >>> 707 >>> 708 p.first := SYMrip; >>> 709 >>> 710 p.rest := t.freePairs; >>> 711 t.freePairs := cons >>> 712 END >>> 713 END ReturnCons; >>> 714 >>> 715 PROCEDURE SymbolCheck(x : Object) : SchemeSymbol.T RAISES >>> { E } = >>> (m3gdb) >>> ... >>> (m3gdb) list >>> 2279 INC(checkStoreTraced); (* race, so only >>> approximate *) >>> 2280 WITH h = HeaderOf (LOOPHOLE(dst, RefReferent)), page = >>> PageToRef(p) DO >>> 2281 TRY >>> 2282 RTOS.LockHeap(thread^); >>> 2283 <*ASSERT h.typecode # RT0.TextLitTypecode*> >>> 2284 <*ASSERT NOT h.gray*> <===== here >>> 2285 WITH d = page.desc DO >>> 2286 IF h.dirty THEN >>> 2287 <*ASSERT NOT d.clean*> >>> 2288 ELSE >>> (m3gdb) >>> >>> top shows: >>> >>> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU >>> COMMAND >>> 85115 mika 67 20 0 119M 28636K STOP 1 0:00 0.00% >>> gcomsmaster >>> >>> Mika >>> >>> ------- End of Forwarded Message >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:08:05 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:08:05 -0700 Subject: [M3devel] m3 RC In-Reply-To: <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> Message-ID: <20091031180805.9B6091A209C@async.async.caltech.edu> Tony this is what I see: 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; This is not from the head but from the RC archive from the M3 site: cm3-src-all-5.8.3-RC3.tgz Mika Tony Hosking writes: > >--Apple-Mail-17--467794722 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >This looks like a bogus line number for 1.123.2.4. Are you somehow >using an older version of ThreadPThread.m3 (1.123.2.3)? > >On 31 Oct 2009, at 00:47, Mika Nystrom wrote: > >> >> same comment as previous email >> >> ------- Forwarded Message >> >> Return-Path: >> X-Original-To: mika >> Delivered-To: mika at async.caltech.edu >> Received: by async.async.caltech.edu (Postfix, from userid 1004) >> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >> To: m3devel at elegosoft.com >> cc: mika at async.caltech.edu >> Subject: and another crash.... >> Date: Thu, 29 Oct 2009 13:12:54 -0700 >> From: Mika Nystrom >> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >> >> >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >> in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> - ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >> envp=0x7fffffffdf58) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) >> >> Not sure if this could be related to the crash in RTCollector. >> >> Mika >> >> ------- End of Forwarded Message > > >--Apple-Mail-17--467794722 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">This = >looks like a bogus line number for 1.123.2.4.  Are you somehow = >using an older version of ThreadPThread.m3 = >(1.123.2.3)?
color=3D"#0000FF" face=3D"'Gill Sans'">style=3D"font-size: = >medium;">
>
On 31 Oct 2009, = >at 00:47, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

same comment as previous email

------- = >Forwarded Message

Return-Path: <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
X-Original-To: mika
Delivered-To:
href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Recei= >ved: by async.async.caltech.edu (Postfix, from userid 1004)
class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: from = >async.async.caltech.edu (localhost [127.0.0.1])
class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091;
class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >Oct 2009 13:12:54 -0700 (PDT)
To: href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com
cc: = >href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu
Subje= >ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >-0700
From: Mika Nystrom <href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu<= >/a>>
Message-Id: <
href=3D"mailto:20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >9201254.780EB1A2094 at async.async.caltech.edu>


WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >ABC:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in abort = >() from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in Crash = >(msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/runtime/common/RTProcess.m3:65
#4  0x0000000803768ab2 in = >EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) at = >../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa in = >MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 in = >Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:79
#7  0x0000000803768c3c = >in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:39
#8 = > 0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type code = >30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#9  0x0000000803778eab = >in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee in = >DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e in = >InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab in = >Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 in = >ReportFault (module=3DInvalid C/C++ type code 35 in symbol table.
) = >at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf in = >_m3_fault (arg=3DInvalid C/C++ type code 39 in symbol table.
)
= >  from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:589
#16 = >0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in Init = >(t=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >(mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody (m=3DInvalid = >C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
- ---Type <return> to = >continue, or q <return> to quit---
#22 0x0000000000404194 in = >main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >_m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >15
#15 0x000000080377d1bc in Fork (closure=3D16_0000000807385b48)
= >   at ../src/thread/PTHREAD/ThreadPThread.m3:589
589 = >        WITH r =3D = >pthread_mutex_lock_active() DO <*ASSERT r=3D0*> END;
Current = >language:  auto; currently Modula-3
(m3gdb)

Not sure if = >this could be related to the crash in RTCollector.

= >    Mika

------- End of Forwarded = >Message

= > >--Apple-Mail-17--467794722-- From hosking at cs.purdue.edu Sat Oct 31 19:08:27 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:08:27 -0400 Subject: [M3devel] debugging paranoidgc? In-Reply-To: References: Message-ID: What changes did you make to RTCollector recently? Something changed somewhere *recently* to break GC. On 31 Oct 2009, at 09:40, Jay K wrote: > I'm not sure why/what-changed and maybe this is good, maybe this is > bad, but Juno is now crashing for me every time on Windows with > @paranoidgc. Tips to debug it? > > > Microsoft (R) Windows Debugger Version 6.9.0003.113 X86 > Copyright (c) Microsoft Corporation. All rights reserved. > CommandLine: C:\cm3\bin\Juno.exe @M3no-trestle-await-delete > @M3paranoidgc > Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/download/symbols > Executable search path is: > ModLoad: 00400000 004c7000 Juno.exe > ModLoad: 7c900000 7c9b2000 ntdll.dll > ModLoad: 7c800000 7c8f6000 C:\WINDOWS2\system32\kernel32.dll > ModLoad: 10000000 10063000 C:\cm3\bin\juno-compiler.dll > ModLoad: 00330000 00360000 C:\cm3\bin\juno-machine.dll > ModLoad: 004d0000 005bc000 C:\cm3\bin\m3.dll > ModLoad: 005c0000 00e36000 C:\cm3\bin\m3core.dll > ModLoad: 5d090000 5d12a000 C:\WINDOWS2\system32\comctl32.dll > ModLoad: 77dd0000 77e6b000 C:\WINDOWS2\system32\ADVAPI32.dll > ModLoad: 77e70000 77f02000 C:\WINDOWS2\system32\RPCRT4.dll > ModLoad: 77fe0000 77ff1000 C:\WINDOWS2\system32\Secur32.dll > ModLoad: 77f10000 77f59000 C:\WINDOWS2\system32\GDI32.dll > ModLoad: 7e410000 7e4a1000 C:\WINDOWS2\system32\USER32.dll > ModLoad: 77c10000 77c68000 C:\WINDOWS2\system32\MSVCRT.dll > ModLoad: 71ad0000 71ad9000 C:\WINDOWS2\system32\wsock32.dll > ModLoad: 71ab0000 71ac7000 C:\WINDOWS2\system32\WS2_32.dll > ModLoad: 71aa0000 71aa8000 C:\WINDOWS2\system32\WS2HELP.dll > ModLoad: 5b860000 5b8b5000 C:\WINDOWS2\system32\netapi32.dll > ModLoad: 00360000 003b8000 C:\cm3\bin\m3formsvbt.dll > ModLoad: 003c0000 003ce000 C:\cm3\bin\m3formsvbtpixmaps.dll > ModLoad: 00e40000 00f14000 C:\cm3\bin\m3vbtkit.dll > ModLoad: 00f20000 00fd5000 C:\cm3\bin\m3ui.dll > ModLoad: 003d0000 003d6000 C:\cm3\bin\videovbt.dll > ModLoad: 003e0000 003e5000 C:\cm3\bin\jvideo.dll > ModLoad: 003f0000 003f9000 C:\cm3\bin\web.dll > ModLoad: 00fe0000 00fed000 C:\cm3\bin\m3tcp.dll > ModLoad: 00ff0000 0101d000 C:\cm3\bin\m3netobj.dll > ModLoad: 76390000 763ad000 C:\WINDOWS2\system32\IMM32.DLL > ModLoad: 629c0000 629c9000 C:\WINDOWS2\system32\LPK.DLL > ModLoad: 74d90000 74dfb000 C:\WINDOWS2\system32\USP10.dll > ModLoad: 74720000 7476c000 C:\WINDOWS2\system32\MSCTF.dll > ModLoad: 77c00000 77c08000 C:\WINDOWS2\system32\version.dll > ModLoad: 755c0000 755ee000 C:\WINDOWS2\system32\msctfime.ime > ModLoad: 774e0000 7761d000 C:\WINDOWS2\system32\ole32.dll > ModLoad: 77120000 771ab000 C:\WINDOWS2\system32\OLEAUT32.DLL > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "..\src\runtime\common\RTCollector.m3", line 1729 > *** > Stack trace: > FP PC Procedure > --------- --------- ------------------------------- > 0x12f700 0x5d2a4f CleanOlderRefSanityCheck + 0xa2 in ..\src > \runtime\common\R > TCollector.m3 > 0x12f744 0x5cb101 Walk + 0x467 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f768 0x5ca9da DoWalkRef + 0x62 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f78c 0x5ca9b5 DoWalkRef + 0x3d in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7b8 0x5ca970 WalkRef + 0x100 in ..\src\runtime\common > \RTHeapMap.m3 > 0x12f7f4 0x5d266b SanityCheck + 0x1ec in ..\src\runtime\common > \RTCollector.m > 3 > 0x12f80c 0x5d2471 After + 0x1b in ..\src\runtime\common > \RTCollector.m3 > 0x12f82c 0x5cb7d8 InvokeMonitors + 0x143 in ..\src\runtime\common > \RTHeapRep. > m3 > 0x12f860 0x5d0b13 CollectSomeInStateFive + 0x265 in ..\src > \runtime\common\RT > Collector.m3 > 0x12f874 0x5d01c1 CollectSome + 0xa0 in ..\src\runtime\common > \RTCollector.m3 > ......... ......... ... more frames ... > (d40.9d8): Break instruction exception - code 80000003 (first chance) > eax=00000001 ebx=000006c1 ecx=0000d8df edx=7c90e514 esi=0012f4f0 > edi=005e5d8b > eip=7c90120e esp=0012f4d8 ebp=0012f4f0 iopl=0 nv up ei pl nz > na po nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 > efl=00000202 > ntdll!DbgBreakPoint: > 7c90120e cc int 3 > 0:000> .lines > Line number information will be loaded > 0:000> ~*k999 > . 0 Id: d40.9d8 Suspend: 1 Teb: 7ffdf000 Unfrozen > ChildEBP RetAddr > 0012f4d4 005e5dd7 ntdll!DbgBreakPoint > 0012f4f0 005dc2ce m3core!RTOS__Crash+0x4c [..\src\runtime > \WIN32\RTOS.m3 @ 29] > 0012f508 005da01e m3core!RTProcess__Crash+0x68 [..\src\runtime\common > \RTProcess. > m3 @ 66] > 0012f520 005d9d32 m3core!RTError__EndError+0x37 [..\src\runtime > \common\RTError.m > 3 @ 118] > 0012f538 005da5f1 m3core!RTError__MsgS+0x8d [..\src\runtime\common > \RTError.m3 @ > 40] > 0012f580 005da371 m3core!RTException__Crash+0x1ee [..\src\runtime > \common\RTExcep > tion.m3 @ 79] > 0012f5b8 005da2d1 m3core!RTException__DefaultBackstop+0x6f [..\src > \runtime\commo > n\RTException.m3 @ 39] > 0012f5d4 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f600 005da3fb m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f630 005da2d1 m3core!RTException__DefaultBackstop+0xf9 [..\src > \runtime\commo > n\RTException.m3 @ 47] > 0012f64c 005e7823 m3core!RTException__InvokeBackstop+0x28 [..\src > \runtime\common > \RTException.m3 @ 25] > 0012f678 005c5559 m3core!RTException__Raise+0x63 [..\src\runtime > \ex_frame\RTExFr > ame.m3 @ 29] > 0012f6bc 005d765d m3core!RTHooks__ReportFault+0x93 [..\src\runtime > \common\RTHook > s.m3 @ 110] > 0012f6cc 005d2a4f m3core!MM_RTCollector_CRASH+0x11 [..\src\runtime > \common\RTColl > ector.m3 @ 393] > 0012f700 005cb101 m3core!RTCollector__CleanOlderRefSanityCheck+0xa2 > [..\src\runt > ime\common\RTCollector.m3 @ 1730] > 0012f744 005ca9da m3core!RTHeapMap__Walk+0x467 [..\src\runtime\common > \RTHeapMap. > m3 @ 202] > 0012f768 005ca9b5 m3core!RTHeapMap__DoWalkRef+0x62 [..\src\runtime > \common\RTHeap > Map.m3 @ 62] > 0012f78c 005ca970 m3core!RTHeapMap__DoWalkRef+0x3d [..\src\runtime > \common\RTHeap > Map.m3 @ 57] > 0012f7b8 005d266b m3core!RTHeapMap__WalkRef+0x100 [..\src\runtime > \common\RTHeapM > ap.m3 @ 47] > 0012f7f4 005d2471 m3core!RTCollector__SanityCheck+0x1ec [..\src > \runtime\common\R > TCollector.m3 @ 1658] > 0012f80c 005cb7d8 m3core!RTCollector__After+0x1b [..\src\runtime > \common\RTCollec > tor.m3 @ 1630] > 0012f82c 005d0b13 m3core!RTHeapRep__InvokeMonitors+0x143 [..\src > \runtime\common\ > RTHeapRep.m3 @ 59] > 0012f860 005d01c1 m3core!RTCollector__CollectSomeInStateFive+0x265 > [..\src\runti > me\common\RTCollector.m3 @ 983] > 0012f874 005cfe26 m3core!RTCollector__CollectSome+0xa0 [..\src > \runtime\common\RT > Collector.m3 @ 724] > 0012f8b8 005c802c m3core!RTHeapRep__CollectEnough+0x9b [..\src > \runtime\common\RT > Collector.m3 @ 654] > 0012f8f8 005c7643 m3core!RTAllocator__AllocTraced+0xd7 [..\src > \runtime\common\RT > Allocator.m3 @ 366] > 0012f92c 005c713d m3core!RTAllocator__GetTracedObj+0x8c [..\src > \runtime\common\R > TAllocator.m3 @ 224] > 0012f950 1000f8a8 m3core!RTHooks__AllocateTracedObj+0x15 [..\src > \runtime\common\ > RTAllocator.m3 @ 120] > 0012f994 0041fd5b juno_compiler!JunoCompile__ProcDecl+0x1de [..\src > \JunoCompile. > m3 @ 254] > 0012f9cc 00420909 Juno!Editor__Pass2+0x216 [..\src\Editor.m3 @ 730] > 0012fa80 004207a1 Juno!Editor__Compile2+0x158 [..\src\Editor.m3 @ 813] > 0012fab4 00444391 Juno!Editor__Compile+0x53 [..\src\Editor.m3 @ 793] > 0012faf4 004445c6 Juno!Juno__CompileEditor+0x2c [..\src\Juno.m3 @ 140] > 0012fb94 00445017 Juno!Juno__CompileModule+0x14a [..\src\Juno.m3 @ > 174] > 0012fd54 0045494c Juno!Juno__CompileModules+0x2e5 [..\src\Juno.m3 @ > 263] > 0012fed4 005d8cf4 Juno!Juno_M3+0x251e [..\src\Juno.m3 @ 2134] > 0012ff18 005d82cc m3core!RTLinker__RunMainBody+0x25a [..\src\runtime > \common\RTLi > nker.m3 @ 399] > 0012ff30 005d8375 m3core!RTLinker__AddUnitI+0xf7 [..\src\runtime > \common\RTLinker > .m3 @ 113] > 0012ff54 00401038 m3core!RTLinker__AddUnit+0xa1 [..\src\runtime > \common\RTLinker. > m3 @ 122] > 0012ff70 004ba44f Juno!main+0x38 [_m3main.mc @ 4] > 0012ffc0 7c817077 Juno!mainCRTStartup+0xff > 0012fff0 00000000 kernel32!BaseProcessStart+0x23 > 1 Id: d40.fdc Suspend: 1 Teb: 7ffde000 Unfrozen > ChildEBP RetAddr > 01a0ff84 7c90df4a ntdll!KiFastSystemCallRet > 01a0ff88 5b891374 ntdll!ZwWaitForMultipleObjects+0xc > 01a0ffb4 7c80b729 netapi32!NetbiosWaiter+0x73 > 01a0ffec 00000000 kernel32!BaseThreadStart+0x37 > 2 Id: d40.e08 Suspend: 2 Teb: 7ffdd000 Unfrozen > ChildEBP RetAddr > 01b0fecc 7e4191be ntdll!KiFastSystemCallRet > 01b0fef4 00f2cb35 USER32!NtUserGetMessage+0xc > 01b0ff4c 005eaade m3ui!WinTrestle__MessengerApply+0x272 [..\src > \winvbt\WinTrestl > e.m3 @ 2448] > 01b0ff8c 005ea8fe m3core!ThreadWin32__RunThread+0x195 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 524] > 01b0ffb4 7c80b729 m3core!ThreadWin32__ThreadBase+0x33 [..\src\thread > \WIN32\Threa > dWin32.m3 @ 504] > 01b0ffec 00000000 kernel32!BaseThreadStart+0x37 > 0:000> > > > > Out of ignorance I might try to remove Trestle uses and see if it > still crashes. > But that might also be difficult. > (I did remove the filewatcher and metermaid threads.) > > > - Jay -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:10:14 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:10:14 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031180805.9B6091A209C@async.async.caltech.edu> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: Yeah, and if that is not working properly then it might also explain your collector failures too. Have the RC archives not been updated for the changes to the RC branch? It looks like you are using an old ThreadPThread. On 31 Oct 2009, at 14:08, Mika Nystrom wrote: > Tony this is what I see: > > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END; > > This is not from the head but from the RC archive from the M3 site: > > cm3-src-all-5.8.3-RC3.tgz > > Mika > > Tony Hosking writes: >> >> --Apple-Mail-17--467794722 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> This looks like a bogus line number for 1.123.2.4. Are you somehow >> using an older version of ThreadPThread.m3 (1.123.2.3)? >> >> On 31 Oct 2009, at 00:47, Mika Nystrom wrote: >> >>> >>> same comment as previous email >>> >>> ------- Forwarded Message >>> >>> Return-Path: >>> X-Original-To: mika >>> Delivered-To: mika at async.caltech.edu >>> Received: by async.async.caltech.edu (Postfix, from userid 1004) >>> id 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> Received: from async.async.caltech.edu (localhost [127.0.0.1]) >>> by async.async.caltech.edu (Postfix) with ESMTP id 7129B1A2091; >>> Thu, 29 Oct 2009 13:12:54 -0700 (PDT) >>> To: m3devel at elegosoft.com >>> cc: mika at async.caltech.edu >>> Subject: and another crash.... >>> Date: Thu, 29 Oct 2009 13:12:54 -0700 >>> From: Mika Nystrom >>> Message-Id: <20091029201254.780EB1A2094 at async.async.caltech.edu> >>> >>> >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for ABC:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>> RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 >>> in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> - ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffddf0, >>> envp=0x7fffffffdf58) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_0000000807385b48) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) >>> >>> Not sure if this could be related to the crash in RTCollector. >>> >>> Mika >>> >>> ------- End of Forwarded Message >> >> >> --Apple-Mail-17--467794722 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">This = >> looks like a bogus line number for 1.123.2.4.  Are you somehow = >> using an older version of ThreadPThread.m3 = >> (1.123.2.3)?
> span" = >> color=3D"#0000FF" face=3D"'Gill Sans'">> span" = >> style=3D"font-size: = >> medium;">
> span>>>
On 31 Oct >>> 2009, = >> at 00:47, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">

same comment as previous >> email

------- = >> Forwarded Message

Return-Path: <> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
X-Original-To: mika
Delivered-To:
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Recei= >> ved: by async.async.caltech.edu (Postfix, from userid >> 1004)
> class=3D"Apple-tab-span" style=3D"white-space:pre"> id = >> 780EB1A2094; Thu, 29 Oct 2009 13:12:54 -0700 (PDT)
Received: >> from = >> async.async.caltech.edu (localhost [127.0.0.1])
> class=3D"Apple-tab-span" style=3D"white-space:pre"> by = >> async.async.caltech.edu (Postfix) with ESMTP id >> 7129B1A2091;
> class=3D"Apple-tab-span" style=3D"white-space:pre"> Thu, 29 = >> Oct 2009 13:12:54 -0700 (PDT)
To:
> href=3D"mailto:m3devel at elegosoft.com">m3devel at elegosoft.com> a>
cc: = >>
> href=3D"mailto:mika at async.caltech.edu">mika at async.caltech.edu> a>
Subje= >> ct: and another crash....
Date: Thu, 29 Oct 2009 13:12:54 = >> -0700
From: Mika Nystrom <
> href=3D"mailto:mika at async.async.caltech.edu">mika at async.async.caltech.edu >> <= >> /a>>
Message-Id: <
> href=3D"mailto: >> 20091029201254.780EB1A2094 at async.async.caltech.edu">2009102= >> 9201254.780EB1A2094 at async.async.caltech.edu> a>>


WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> ABC:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804c9fa9c in = >> thr_kill () from /lib/libc.so.7
#1  0x0000000804d2ef8b in >> abort = >> () from /lib/libc.so.7
#2  0x0000000803777bf7 in Crash () >> at = >> ../src/runtime/POSIX/RTOS.m3:20
#3  0x000000080376b615 in >> Crash = >> (msg=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/runtime/common/RTProcess.m3:65
#4   >> 0x0000000803768ab2 in = >> EndError (crash=3DInvalid C/C++ type code 36 in symbol table.
) >> at = >> ../src/runtime/common/RTError.m3:118
#5  0x00000008037687aa >> in = >> MsgS (file=3DInvalid C/C++ type code 35 in symbol table.
) at = >> ../src/runtime/common/RTError.m3:40
#6  0x0000000803768f85 >> in = >> Crash (a=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:79
#7   >> 0x0000000803768c3c = >> in DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) = >> at ../src/runtime/common/RTException.m3:39
#8 = >>  0x0000000803768b6e in InvokeBackstop (a=3DInvalid C/C++ type >> code = >> 30 in symbol table.
) at = >> ../src/runtime/common/RTException.m3:25
#9   >> 0x0000000803778eab = >> in Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#10 0x0000000803768cee >> in = >> DefaultBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:47
#11 0x0000000803768b6e >> in = >> InvokeBackstop (a=3DInvalid C/C++ type code 30 in symbol >> table.
) at = >> ../src/runtime/common/RTException.m3:25
#12 0x0000000803778eab >> in = >> Raise (act=3DInvalid C/C++ type code 30 in symbol table.
) at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
#13 0x0000000803750241 >> in = >> ReportFault (module=3DInvalid C/C++ type code 35 in symbol >> table.
) = >> at ../src/runtime/common/RTHooks.m3:110
#14 0x0000000803780acf >> in = >> _m3_fault (arg=3DInvalid C/C++ type code 39 in symbol >> table.
)
= >>   from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
#15 = >> 0x000000080377d1bc in Fork (closure=3DInvalid C/C++ type code 26 in = >> symbol table.
) at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
#16 = >> 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type code 26 in >> symbol = >> table.
) at ../src/MktPlace.m3:116
#17 0x00000000004085c6 in >> Init = >> (t=3DInvalid C/C++ type code 26 in symbol table.
) at = >> ../src/MktIsolator.m3:514
#18 0x00000000004106af in Main = >> (mode=3DInvalid C/C++ type code 39 in symbol table.
) at = >> ../src/Main.m3:734
#19 0x0000000803767c19 in RunMainBody >> (m=3DInvalid = >> C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:400
#20 0x0000000803766e00 in = >> AddUnitI (m=3DInvalid C/C++ type code 29 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:114
#21 0x0000000803766e9e in = >> AddUnit (b=3DInvalid C/C++ type code 31 in symbol table.
) at = >> ../src/runtime/common/RTLinker.m3:123
- ---Type <return> >> to = >> continue, or q <return> to quit---
#22 0x0000000000404194 >> in = >> main (argc=3D44, argv=3D0x7fffffffddf0, envp=3D0x7fffffffdf58) at = >> _m3main.mc:4
#23 0x00000000004040de in _start ()
(m3gdb) up = >> 15
#15 0x000000080377d1bc in Fork >> (closure=3D16_0000000807385b48)
= >>    at ../src/thread/PTHREAD/ >> ThreadPThread.m3:589
589 = >>         WITH r =3D = >> pthread_mutex_lock_active() DO <*ASSERT r=3D0*> >> END;
Current = >> language:  auto; currently Modula-3
(m3gdb)

Not >> sure if = >> this could be related to the crash in RTCollector.

= >>     Mika

------- End of Forwarded = >> Message

= >> >> --Apple-Mail-17--467794722-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:15:55 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:15:55 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Which pthread library are you linking to? On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:19:34 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:19:34 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161514.C7E441A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> Message-ID: <87AABBAB-B891-4DB8-9351-7096087BC889@cs.purdue.edu> This looks weird. How do you get from XWait to pthread_cond_signal? Unless perhaps that simply represents the fact that the signal has been fielded. In any case, I'd need to see backtraces from all the threads. This one looks to have successfully fielded a request to stop for GC. On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > > More details about the "catatonic" case. It's pretty bad. Even > ctrl-\ > won't wake it up properly. Ctrl-\ is supposed to cause the program to > abort and dump core. It does nothing to my program now! And I think > I've "lost threads" before, too. > > Btw, > > (90)ginger:~/t>uname -a > FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 > 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ > sys/GENERIC amd64 > > I'm happy to help debug if someone can give me some pointers... > > > Mika > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) cont > Continuing. > > > *** > *** runtime error: > *** aborted > > > > > ^\ > Program received signal SIGQUIT, Quit. > 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > (m3gdb) where > #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 > #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 > #2 0x0000000803780da0 in ThreadPThread__sigsuspend () > at ../src/thread/PTHREAD/ThreadPThreadC.c:117 > #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code > 28 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 > #4 > #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 > #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 > #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 > #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 > #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:217 > #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/SX.m3:152 > #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/MktAsset.m3:117 > #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:469 > #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 > #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code > 35 in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 > #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 > #16 0x0000000000000000 in ?? () > (m3gdb) > > > Mika Nystrom writes: >> Hello m3devel, >> >> I'm running into problems with the current release candidate. >> I'm attaching a backtrace from one crash, but I think I also am >> seeing >> deadlocks in the threading system---my application goes catatonic. >> Of course it *is* possible it's a bug in my application, but it works >> on PM3 and on CM3 on PPC_DARWIN. >> >> Finally I'm still concerned about threading performance but in the >> light >> of the bugs it's hard to say much about it yet, I think... >> >> (The program in question is a highly multithreaded stock market >> simulator.) >> >> Mika >> >> ============================================================ >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) show args >> Argument list to give program being debugged when it is started is >> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >> symbology ric -symbology tws >> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >> isolate90.src". >> (m3gdb) where >> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/runtime/common/RTProcess.m3:65 >> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >> 36 in symbol table. >> ) at ../src/runtime/common/RTError.m3:118 >> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >> symbol table. >> ) at ../src/runtime/common/RTError.m3:40 >> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/common/RTException.m3:79 >> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:39 >> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >> code 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:47 >> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >> 30 in symbol table. >> ) at ../src/runtime/common/RTException.m3:25 >> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >> code 35 in symbol table. >> ) at ../src/runtime/common/RTHooks.m3:110 >> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >> in symbol table. >> ) >> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:116 >> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktIsolator.m3:514 >> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >> symbol table. >> ) at ../src/Main.m3:734 >> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/runtime/common/RTLinker.m3:400 >> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:114 >> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >> symbol table. >> ) at ../src/runtime/common/RTLinker.m3:123 >> ---Type to continue, or q to quit--- >> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >> envp=0x7fffffffdf50) at _m3main.mc:4 >> #23 0x00000000004040de in _start () >> (m3gdb) up 15 >> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >> END; >> Current language: auto; currently Modula-3 >> (m3gdb) print r >> $1 = 11 >> (m3gdb) >> >> ============================================================ >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 19:20:32 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:20:32 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031161142.57E771A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> Message-ID: <8DFB7903-B5EB-4596-A259-2B4CCB87A6BE@cs.purdue.edu> For what it's worth, that call should never fail. It is unlocking a mutex that this thread should already hold. On 31 Oct 2009, at 12:11, Mika Nystrom wrote: > Hello m3devel, > > I'm running into problems with the current release candidate. > I'm attaching a backtrace from one crash, but I think I also am seeing > deadlocks in the threading system---my application goes catatonic. > Of course it *is* possible it's a bug in my application, but it works > on PM3 and on CM3 on PPC_DARWIN. > > Finally I'm still concerned about threading performance but in the > light > of the bugs it's hard to say much about it yet, I think... > > (The program in question is a highly multithreaded stock market > simulator.) > > Mika > > ============================================================ > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) show args > Argument list to give program being debugged when it is started is > "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - > symbology ric -symbology tws -replay mktisolator090910.ticks > 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp > 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 7013 - > sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 isolate90.src". > (m3gdb) where > #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 > #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 > #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/runtime/common/RTProcess.m3:65 > #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code 36 > in symbol table. > ) at ../src/runtime/common/RTError.m3:118 > #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in > symbol table. > ) at ../src/runtime/common/RTError.m3:40 > #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/common/RTException.m3:79 > #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:39 > #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:47 > #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code > 30 in symbol table. > ) at ../src/runtime/common/RTException.m3:25 > #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in > symbol table. > ) at ../src/runtime/ex_frame/RTExFrame.m3:29 > #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type > code 35 in symbol table. > ) at ../src/runtime/common/RTHooks.m3:110 > #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 > in symbol table. > ) > from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 > #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 > in symbol table. > ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 > #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktPlace.m3:116 > #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in > symbol table. > ) at ../src/MktIsolator.m3:514 > #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in > symbol table. > ) at ../src/Main.m3:734 > #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 > in symbol table. > ) at ../src/runtime/common/RTLinker.m3:400 > #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:114 > #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in > symbol table. > ) at ../src/runtime/common/RTLinker.m3:123 > ---Type to continue, or q to quit--- > #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, > envp=0x7fffffffdf50) at _m3main.mc:4 > #23 0x00000000004040de in _start () > (m3gdb) up 15 > #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) > at ../src/thread/PTHREAD/ThreadPThread.m3:589 > 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> > END; > Current language: auto; currently Modula-3 > (m3gdb) print r > $1 = 11 > (m3gdb) > > ============================================================ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 19:26:37 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:26:37 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> Message-ID: <20091031182637.1D2DD1A209C@async.async.caltech.edu> Let's see here we go: libc.so.7 => /lib/libc.so.7 (0x804c4e000) -> linking mktisolator generate _m3main.new compare _m3main.new _m3main.mc rm _m3main.new gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\$ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread rm m3make.args cd . Tony Hosking writes: > >--Apple-Mail-21--467118296 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Which pthread library are you linking to? > >On 31 Oct 2009, at 12:15, Mika Nystrom wrote: > >> >> More details about the "catatonic" case. It's pretty bad. Even >> ctrl-\ >> won't wake it up properly. Ctrl-\ is supposed to cause the program to >> abort and dump core. It does nothing to my program now! And I think >> I've "lost threads" before, too. >> >> Btw, >> >> (90)ginger:~/t>uname -a >> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/src/ >> sys/GENERIC amd64 >> >> I'm happy to help debug if someone can give me some pointers... >> >> >> Mika >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) cont >> Continuing. >> >> >> *** >> *** runtime error: >> *** aborted >> >> >> >> >> ^\ >> Program received signal SIGQUIT, Quit. >> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> (m3gdb) where >> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >> 28 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >> #4 >> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/libthr.so.3 >> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:217 >> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >> symbol table. >> ) at ../src/SX.m3:152 >> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >> in symbol table. >> ) at ../src/MktAsset.m3:117 >> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >> symbol table. >> ) at ../src/MktPlace.m3:469 >> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >> in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >> 35 in symbol table. >> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >> #16 0x0000000000000000 in ?? () >> (m3gdb) >> >> >> Mika Nystrom writes: >>> Hello m3devel, >>> >>> I'm running into problems with the current release candidate. >>> I'm attaching a backtrace from one crash, but I think I also am >>> seeing >>> deadlocks in the threading system---my application goes catatonic. >>> Of course it *is* possible it's a bug in my application, but it works >>> on PM3 and on CM3 on PPC_DARWIN. >>> >>> Finally I'm still concerned about threading performance but in the >>> light >>> of the bugs it's hard to say much about it yet, I think... >>> >>> (The program in question is a highly multithreaded stock market >>> simulator.) >>> >>> Mika >>> >>> ============================================================ >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) show args >>> Argument list to give program being debugged when it is started is >>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>> symbology ric -symbology tws >>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>> isolate90.src". >>> (m3gdb) where >>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/RTOS.m3:20 >>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/runtime/common/RTProcess.m3:65 >>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>> 36 in symbol table. >>> ) at ../src/runtime/common/RTError.m3:118 >>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>> symbol table. >>> ) at ../src/runtime/common/RTError.m3:40 >>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/common/RTException.m3:79 >>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:39 >>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>> code 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:47 >>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>> 30 in symbol table. >>> ) at ../src/runtime/common/RTException.m3:25 >>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>> symbol table. >>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>> code 35 in symbol table. >>> ) at ../src/runtime/common/RTHooks.m3:110 >>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>> in symbol table. >>> ) >>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>> in symbol table. >>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktPlace.m3:116 >>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>> symbol table. >>> ) at ../src/MktIsolator.m3:514 >>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>> symbol table. >>> ) at ../src/Main.m3:734 >>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>> in symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:400 >>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:114 >>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>> symbol table. >>> ) at ../src/runtime/common/RTLinker.m3:123 >>> ---Type to continue, or q to quit--- >>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>> envp=0x7fffffffdf50) at _m3main.mc:4 >>> #23 0x00000000004040de in _start () >>> (m3gdb) up 15 >>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>> END; >>> Current language: auto; currently Modula-3 >>> (m3gdb) print r >>> $1 = 11 >>> (m3gdb) >>> >>> ============================================================ >>> >>> > > >--Apple-Mail-21--467118296 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Which pthread library are you = >linking to?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
type=3D"cite">

More details about the "catatonic" case. = > It's pretty bad.  Even ctrl-\
won't wake it up properly. = > Ctrl-\ is supposed to cause the program to
abort and dump core. = > It does nothing to my program now!  And I think
I've "lost = >threads" before, too.

Btw,

(90)ginger:~/t>uname = >-a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May  1 = >07:18:07 UTC 2009     
href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to help = >debug if someone can give me some pointers...


= >    Mika

^\
Program received signal = >SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >runtime error:
*** = >   aborted




^\
Program received = >signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
   at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = >28 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >handler called>
#5  0x0000000804b4829c in __error () from = >/lib/libthr.so.3
#6  0x0000000804b46365 in pthread_cond_signal = >() from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >(self=3DInvalid C/C++ type code 26 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >symbol table.
) at ../src/thread/PTHREAD/ThreadPThread.m3:278
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = >symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in symbol table.
) at = >../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked (t=3DInvalid = >C/C++ type code 26 in symbol table.
) at = >../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply (cl=3DInvalid= > C/C++ type code 26 in symbol table.
) at = >../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >(me=3DInvalid C/C++ type code 29 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
#14 0x000000080377ca6a in = >ThreadBase (param=3DInvalid C/C++ type code 35 in symbol table.
) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
#15 0x0000000804b3e4d1 in = >pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 in ?? = >()
(m3gdb)


Mika Nystrom writes:
type=3D"cite">Hello m3devel,
type=3D"cite">
I'm running = >into problems with the current release = >candidate.
I'm attaching a = >backtrace from one crash, but I think I also am = >seeing
deadlocks in the = >threading system---my application goes = >catatonic.
Of course it *is* = >possible it's a bug in my application, but it = >works
on PM3 and on CM3 on = >PPC_DARWIN.
type=3D"cite">
Finally I'm = >still concerned about threading performance but in the = >light
of the bugs it's hard to = >say much about it yet, I think...
type=3D"cite">
(The program in = >question is a highly multithreaded stock = >market
type=3D"cite">simulator.)
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">***
*** runtime = >error:
*** = >   <*ASSERT*> failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, Aborted.
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb) show = >args
Argument list to give = >program being debugged when it is started is "@M3debugtrace=3Dmktsim.out = >-tz America/New_York -bugbehavior None -symbology ric -symbology = >tws
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port 7001 = >-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 7011 = >-dp 0.30
7013 -sync 60 = >-unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >isolate90.src".
(m3gdb) = >where
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in symbol table.
) = >at ../src/runtime/common/RTProcess.m3:65
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code 36 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTError.m3:118
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in symbol table.
) = >at ../src/runtime/common/RTError.m3:40
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/common/RTException.m3:79
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:39
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in symbol table.
) = >at ../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:47
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code 30 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTException.m3:25
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in symbol table.
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type code 35 in symbol table.
type=3D"cite">) at = >../src/runtime/common/RTHooks.m3:110
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 in symbol table.
type=3D"cite">)
 from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
ockquote type=3D"cite">#15 0x000000080377d1bc in Fork (closure=3DInvalid = >C/C++ type code 26 in symbol table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ type = >code 26 in symbol table.
) at = >../src/MktPlace.m3:116
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in symbol = >table.
) at = >../src/MktIsolator.m3:514
#18 = >0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in symbol = >table.
) at = >../src/Main.m3:734
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 in = >symbol table.
) at = >../src/runtime/common/RTLinker.m3:400
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:114
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in symbol table.
) at = >../src/runtime/common/RTLinker.m3:123
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
#22 0x0000000000404194 = >in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) at = >_m3main.mc:4
#23 = >0x00000000004040de in _start ()
type=3D"cite">(m3gdb) up 15
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >   at = >../src/thread/PTHREAD/ThreadPThread.m3:589
type=3D"cite">589         WITH r = >=3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >END;
Current language: = > auto; currently Modula-3
type=3D"cite">(m3gdb) print r
$1= > =3D 11
(m3gdb) = >

type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
type=3D"cite">
type=3D"cite">
On 8 Oct >>> 2009, = >> at 09:32, Jay K wrote:

> class=3D"Apple-interchange-newline">
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font- >> style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0px; ">
> style=3D"font-size: 10pt; font-family: Verdana; ">condition = >> variables/win32
 

So..one way I think about >> condition = >> variables
is that you want to be woken when someone >> else
leaves = >> the mutex that guards the data that you are dealing with.
You >> want to = >> know when another thread modifies the data.
(If you have a = >> reader/writer lock, you only want to be
woken when someone exits >> a = >> write.)
 

Now, if you consider a producer/consumer = >> queue.
There are two interesting occurences.
Transitions from = >> empty to non-empty
and transitions from full to non-full = >> (optionally,
if it is fixed size).
 

Consumers >> wait = >> for empty to non-empty.
Consumers signal full to = >> non-full.
Producers wait for full to non-full.
Producers >> signal = >> non-empty to empty.
 

So, in this case, one mutex is = >> likely used with with two condition = >> variables.
 

But, what if we take a simplifying = >> deoptimization and assume that a condition
variable is only ever = >> associated with one mutex?
Anyone existing that mutex wakes up >> anyone = >> waiting on any condition associated with it?
Like, a condition = >> variable I think becomes stateless and everything is
about the = >> mutex?
 
 
What is the = >> downside?
 

Condition variables are allowed to have = >> spurious wakeups.
This would "just" increase them. Too = >> much?
 

So, therefore, what would be wrong with the = >> following design?
 a mutex contains an event> class=3D"Apple-converted-space"> 
 and a number >> of = >> waiters, zero or non-zero> class=3D"Apple-converted-space"> 
 if a mutex >> is = >> exiting with a non-zero number of waiters, signal the = >> event
 

To handle Signal vs. Broadcast
method = >> 1:
 the number of waiters might be interlocked
 the = >> woken would decrement it
 if it isn't zero, signal the >> event = >> again
 

method 2:
 the number of waiters is >> both = >> an integer and a semaphore
 and the lock exiter raises the = >> semaphore by the the integer

 
method 3:
 it >> is = >> not an auto-reset event and there is a count
  and when the = >> count goes to 0, reset the event
 I think in this case you >> have = >> to maintain a "wait generation"> class=3D"Apple-converted-space"> 
 so that new = >> waiters don't prevent the count from ever hitting 0.
 I >> think = >> this #3 is what Java might be doing, and is described here:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
 "3.3. The Generation >> Count = >> Solution"

 
also:
> href=3D"http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">http://www.cs.wu >> = >> stl.edu/~schmidt/win32-cv-1.html
3.2. The SetEvent = >> Solution
Evaluating the SetEvent Solution
Incorrectness -- >> > class=3D"Apple-converted-space"> 
 

Is >> that = >> incorrect case really necessarily incorrect?
It seems unfair, >> since = >> first waiter should be first woken, but..?

 
Am I >> missing = >> something? A lot?
 

 - = >> Jay

= > >--Apple-Mail-21--467118296-- From mika at async.async.caltech.edu Sat Oct 31 19:54:01 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 11:54:01 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> Message-ID: <20091031185401.0E3761A209C@async.async.caltech.edu> Argh this is my first experience with FreeBSD 7. I thought this was all simple and clear by now. PTHREAD(3) FreeBSD Library Functions Manual PTHREAD(3) NAME pthread -- POSIX thread functions LIBRARY POSIX Threads Library (libpthread, -lpthread) SYNOPSIS #include DESCRIPTION POSIX threads are a set of functions that support applications with requirements for multiple flows of control, called threads, within a process. Multithreading is used to improve the performance of a program. The POSIX thread functions are summarized in this section in the follow- ing groups: o Thread Routines o Attribute Object Routines o Mutex Routines o Condition Variable Routines o Read/Write Lock Routines o Per-Thread Context Routines o Cleanup Routines Thread Routines int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) Creates a new thread of execution. int pthread_cancel(pthread_t thread) ... IMPLEMENTATION NOTES The current FreeBSD POSIX thread implementation is built in two libraries, 1:1 Threading Library (libthr, -lthr), and N:M Threading Library (libkse, -lkse). They contain both thread-safe versions of Standard C Library (libc, -lc) functions and the thread functions. Threaded applications are linked with one of these libraries. SEE ALSO pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), pthread_cleanup_push(3), pthread_condattr_destroy(3), pthread_condattr_init(3), pthread_cond_broadcast(3), pthread_cond_destroy(3), pthread_cond_init(3), pthread_cond_signal(3), pthread_cond_timedwait(3), pthread_cond_wait(3), pthread_create(3), pthread_detach(3), pthread_equal(3), pthread_exit(3), pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), pthread_kill(3), pthread_mutexattr_destroy(3), pthread_mutexattr_getprioceiling(3), pthread_mutexattr_getprotocol(3), pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), pthread_mutexattr_setprioceiling(3), pthread_mutexattr_setprotocol(3), pthread_mutexattr_settype(3), pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3), pthread_once(3), pthread_rwlockattr_destroy(3), pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), pthread_rwlock_init(3), pthread_rwlock_rdlock(3), pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), pthread_self(3), pthread_setcancelstate(3), pthread_setcanceltype(3), pthread_setspecific(3), pthread_testcancel(3) STANDARDS The functions with the pthread_ prefix and not _np suffix or pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX.1''). The functions with the pthread_ prefix and _np suffix are non-portable extensions to POSIX threads. The functions with the pthread_rwlock prefix are extensions created by The Open Group as part of the Version 2 of the Single UNIX Specification (``SUSv2''). FreeBSD 7.2 October 19, 2007 FreeBSD 7.2 > >Do you know which one -lpthread gives you on FreeBSD? > > >On 31 Oct 2009, at 14:26, Mika Nystrom wrote: > >> Let's see here we go: >> >> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >> >> -> linking mktisolator >> generate _m3main.new >> compare _m3main.new _m3main.mc >> rm _m3main.new >> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/ >> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/mika/ >> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >> AMD64_FREEBSD -L/usr/local/c >> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/mika/ >> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/scheme- >> lib/AMD64_FREE >> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova -Wl,- >> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/calarm/ >> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching - >> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >> rm m3make.args >> cd . >> >> >> Tony Hosking writes: >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Which pthread library are you linking to? >>> >>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>> >>>> >>>> More details about the "catatonic" case. It's pretty bad. Even >>>> ctrl-\ >>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>> program to >>>> abort and dump core. It does nothing to my program now! And I >>>> think >>>> I've "lost threads" before, too. >>>> >>>> Btw, >>>> >>>> (90)ginger:~/t>uname -a >>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>> src/ >>>> sys/GENERIC amd64 >>>> >>>> I'm happy to help debug if someone can give me some pointers... >>>> >>>> >>>> Mika >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) cont >>>> Continuing. >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** aborted >>>> >>>> >>>> >>>> >>>> ^\ >>>> Program received signal SIGQUIT, Quit. >>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> (m3gdb) where >>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type code >>>> 28 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>> #4 >>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>> libthr.so.3 >>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:217 >>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>> symbol table. >>>> ) at ../src/SX.m3:152 >>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>> in symbol table. >>>> ) at ../src/MktAsset.m3:117 >>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code 26 in >>>> symbol table. >>>> ) at ../src/MktPlace.m3:469 >>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>> in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type code >>>> 35 in symbol table. >>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>> #16 0x0000000000000000 in ?? () >>>> (m3gdb) >>>> >>>> >>>> Mika Nystrom writes: >>>>> Hello m3devel, >>>>> >>>>> I'm running into problems with the current release candidate. >>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>> seeing >>>>> deadlocks in the threading system---my application goes catatonic. >>>>> Of course it *is* possible it's a bug in my application, but it >>>>> works >>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>> >>>>> Finally I'm still concerned about threading performance but in the >>>>> light >>>>> of the bugs it's hard to say much about it yet, I think... >>>>> >>>>> (The program in question is a highly multithreaded stock market >>>>> simulator.) >>>>> >>>>> Mika >>>>> >>>>> ============================================================ >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) show args >>>>> Argument list to give program being debugged when it is started is >>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior None - >>>>> symbology ric -symbology tws >>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>> isolate90.src". >>>>> (m3gdb) where >>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>> RTOS.m3:20 >>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>> 36 in symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>> code 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type code >>>>> 30 in symbol table. >>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>> code 35 in symbol table. >>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type code 39 >>>>> in symbol table. >>>>> ) >>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:116 >>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/MktIsolator.m3:514 >>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 in >>>>> symbol table. >>>>> ) at ../src/Main.m3:734 >>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code 29 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 in >>>>> symbol table. >>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>> ---Type to continue, or q to quit--- >>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>> #23 0x00000000004040de in _start () >>>>> (m3gdb) up 15 >>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> >>>>> END; >>>>> Current language: auto; currently Modula-3 >>>>> (m3gdb) print r >>>>> $1 = 11 >>>>> (m3gdb) >>>>> >>>>> ============================================================ >>>>> >>>>> >>> >>> >>> --Apple-Mail-21--467118296 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">Which pthread library are >>> you = >>> linking to?
>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>> color: = >>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >>> normal; font-variant: normal; font-weight: normal; letter-spacing: = >>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>> indent: = >>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>> spacing: = >>> 0px; -webkit-border-horizontal-spacing: 0px; = >>> -webkit-border-vertical-spacing: 0px; = >>> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 12:15, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">

More details about the "catatonic" case. = >>>  It's pretty bad.  Even ctrl-\
won't wake it up >>> properly. = >>>  Ctrl-\ is supposed to cause the program to
abort and dump >>> core. = >>>  It does nothing to my program now!  And I think
I've >>> "lost = >>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>  1 = >>> 07:18:07 UTC 2009     >> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>> = >>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>> help = >>> debug if someone can give me some pointers...


= >>>     Mika

^\
Program received signal = >>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) cont
Continuing.


***
*** = >>> runtime error:
*** = >>>    aborted




^\
Program received = >>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a in = >>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>> in = >>> ThreadPThread__sigsuspend ()
   at = >>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>> code = >>> 28 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4  <signal = >>> handler called>
#5  0x0000000804b4829c in __error () >>> from = >>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>> pthread_cond_signal = >>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>> symbol table.
) at ../src/thread/PTHREAD/ >>> ThreadPThread.m3:278
#9 = >>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>> in = >>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>> Wait = >>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>> (t=3DInvalid = >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>> (cl=3DInvalid= >>> C/C++ type code 26 in symbol table.
) at = >>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>> 0x000000080377ca6a in = >>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>> table.
) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>> 0x0000000804b3e4d1 in = >>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>> in ?? = >>> ()
(m3gdb)


Mika Nystrom writes:
>> type=3D"cite">Hello m3devel,
>> type=3D"cite">
I'm >>> running = >>> into problems with the current release = >>> candidate.
I'm attaching >>> a = >>> backtrace from one crash, but I think I also am = >>> seeing
deadlocks in the = >>> threading system---my application goes = >>> catatonic.
Of course it >>> *is* = >>> possible it's a bug in my application, but it = >>> works
on PM3 and on CM3 >>> on = >>> PPC_DARWIN.
>> type=3D"cite">
Finally >>> I'm = >>> still concerned about threading performance but in the = >>> light
of the bugs it's >>> hard to = >>> say much about it yet, I think...
>> type=3D"cite">
(The >>> program in = >>> question is a highly multithreaded stock = >>> market
>> type=3D"cite">simulator.)
>> type=3D"cite">
= >>>    Mika
>> type=3D"cite">
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">***
*** >>> runtime = >>> error:
*** = >>>    <*ASSERT*> failed.
>> blockquote>
>> type=3D"cite">***    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
>> type=3D"cite">***
>> type=3D"cite">
>> type=3D"cite">
Program = >>> received signal SIGABRT, Aborted.
>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb) >>> show = >>> args
Argument list to >>> give = >>> program being debugged when it is started is >>> "@M3debugtrace=3Dmktsim.out = >>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>> tws
-replay = >>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>> 7001 = >>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>> 7011 = >>> -dp 0.30
7013 -sync 60 = >>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>> isolate90.src".
(m3gdb) = >>> where
#0 = >>>  0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
#1 = >>>  0x0000000804d2ef8b in abort () from = >>> /lib/libc.so.7
#2 = >>>  0x0000000803777bf7 in Crash () at = >>> ../src/runtime/POSIX/RTOS.m3:20
>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >>> C++ = >>> type code 26 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTProcess.m3:65
>> blockquote>
>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>> (crash=3DInvalid = >>> C/C++ type code 36 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTError.m3:118
>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >>> C++ = >>> type code 35 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTError.m3:40
>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >>> + = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/common/RTException.m3:79
>> blockquote>
>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:39
>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >>> C++ = >>> type code 30 in symbol table.
>> type=3D"cite">) = >>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>> blockquote>
>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>> (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:47
>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >>> C/C++ type code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTException.m3:25
>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>> type = >>> code 30 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/ex_frame/RTExFrame.m3:29
>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>> (module=3DInvalid = >>> C/C++ type code 35 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTHooks.m3:110
>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >>> ++ = >>> type code 39 in symbol table.
>> type=3D"cite">)
>>>  from = >>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>> blockquote>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>> (closure=3DInvalid = >>> C/C++ type code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>> type = >>> code 26 in symbol table.
>> type=3D"cite">) at = >>> ../src/MktPlace.m3:116
>> type=3D"cite">#17 = >>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>> symbol = >>> table.
) at = >>> ../src/MktIsolator.m3:514
>> type=3D"cite">#18 = >>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>> symbol = >>> table.
) at = >>> ../src/Main.m3:734
#19 = >>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>> in = >>> symbol table.
) at = >>> ../src/runtime/common/RTLinker.m3:400
>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>> type = >>> code 29 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:114
>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>> type = >>> code 31 in symbol table.
>> type=3D"cite">) at = >>> ../src/runtime/common/RTLinker.m3:123
>> type=3D"cite">---Type <return> to continue, or q >>> <return> to = >>> quit---
#22 >>> 0x0000000000404194 = >>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>> at = >>> _m3main.mc:4
#23 = >>> 0x00000000004040de in _start ()
>> type=3D"cite">(m3gdb) up 15
>> type=3D"cite">#15 = >>> 0x000000080377d1bc in Fork = >>> (closure=3D16_00000008064c8930)
>> type=3D"cite">= >>>   at = >>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>> blockquote>
>> type=3D"cite">589 >>>         WITH r = >>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>> END;
Current language: = >>>  auto; currently Modula-3
>> type=3D"cite">(m3gdb) print r
>> type=3D"cite">$1= >>> =3D 11
(m3gdb) = >>>

>> blockquote>
>> type >>> = >>> 3D >>> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> = >>> 3D >>> = >>> 3D >>> = >>> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> blockquote>
>> type=3D"cite">
>> type=3D"cite">

>> body>= >>> >>> --Apple-Mail-21--467118296-- > > >--Apple-Mail-24--465395183 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">Do you know which one -lpthread = >gives you on FreeBSD?
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: = >rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >normal; font-variant: normal; font-weight: normal; letter-spacing: = >normal; line-height: normal; orphans: 2; text-align: auto; text-indent: = >0px; text-transform: none; white-space: normal; widows: 2; word-spacing: = >0px; -webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: 0px; = >-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>

On 31 Oct = >2009, at 14:26, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Let's = >see here we go:

= >       libc.so.7 =3D> = >/lib/libc.so.7 (0x804c4e000)

-> linking = >mktisolator
generate _m3main.new
compare _m3main.new = >_m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z origin = >-Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN = >-Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o MktIsolator.io = >MktIsolator.mo Main.mo = >-Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >-Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >-L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >-Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >-L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >-Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >-Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >-Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >-L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >-Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >-L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >-Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >m3/pkg/ui/AMD64_FREEBSD -lm3ui = >-Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >-Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >-L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >-Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >-ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >-L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >-Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >-Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >-L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >-Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >-Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >-L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >-Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >-linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >-L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >-Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >-L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >-Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >-L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >-Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >-L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >-Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >-L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >-Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >-L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >-Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >-L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >-Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >mika/t/cit_util/AMD64_FREEBSD -lcit_util = >-Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >-Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >-L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >-Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >-L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >-Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >-Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >-Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD -lpatternmatching = >-Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >-Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >-Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >-L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >-lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >m3make.args
cd .


Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Which pthread = >library are you linking to?
type=3D"cite">
On 31 Oct 2009, = >at 12:15, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">
type=3D"cite">
More details about the = >"catatonic" case.  It's pretty bad.  Even = > 
type=3D"cite">ctrl-\
type=3D"cite">
won't wake it up properly. = > Ctrl-\ is supposed to cause the program = >to
type=3D"cite">abort and dump core.  It does nothing to my program = >now!  And I think
type=3D"cite">
I've "lost threads" before, = >too.
type=3D"cite">
type=3D"cite">
type=3D"cite">Btw,
type=3D"cite">
type=3D"cite">
type=3D"cite">
(90)ginger:~/t>uname = >-a
type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May = > 1  
type=3D"cite">
07:18:07 UTC 2009 = >    href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed= >u:/usr/obj/usr/src/
type=3D"cite">
sys/GENERIC = > amd64
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm happy to help debug if = >someone can give me some = >pointers...
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
= >   Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >cont
type=3D"cite">Continuing.
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">*** = >   aborted
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">^\
type=3D"cite">
Program received signal SIGQUIT, = >Quit.
type=3D"cite">0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >where
type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >/lib/libc.so.7
type=3D"cite">
#1  0x0000000804b41d0a in = >sigsuspend () from = >/lib/libthr.so.3
type=3D"cite">
#2  0x0000000803780da0 in = >ThreadPThread__sigsuspend ()
type=3D"cite">
  at = >../src/thread/PTHREAD/ThreadPThreadC.c:117
lockquote type=3D"cite">
#3 = > 0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type code = > 
type=3D"cite">28 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:1261
<= >blockquote type=3D"cite">
#4  <signal = >handler called>
type=3D"cite">
#5  0x0000000804b4829c in = >__error () from = >/lib/libthr.so.3
type=3D"cite">
#6  0x0000000804b46365 in = >pthread_cond_signal () from = >/lib/libthr.so.3
type=3D"cite">
#7  0x000000080377a85d in = >XWait (self=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:227
lockquote type=3D"cite">
#8 = > 0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:278
lockquote type=3D"cite">
#9 = > 0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:217
type=3D"cite">
#10 0x000000080294999a in Wait = >(on=3DInvalid C/C++ type code 30 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/SX.m3:152
type=3D"cite">
#11 0x00000008011ae748 in = >WaitLocked (t=3DInvalid C/C++ type code 26 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/MktAsset.m3:117
type=3D"cite">
#12 0x00000008011b4950 in = >RecApply (cl=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">symbol table.
type=3D"cite">
) at = >../src/MktPlace.m3:469
type=3D"cite">
#13 0x000000080377cdf3 in = >RunThread (me=3DInvalid C/C++ type code 29 = > 
type=3D"cite">in symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:547
lockquote type=3D"cite">
#14 0x000000080377ca6a = >in ThreadBase (param=3DInvalid C/C++ type code = > 
type=3D"cite">35 in symbol = >table.
type=3D"cite">) at = >../src/thread/PTHREAD/ThreadPThread.m3:523
lockquote type=3D"cite">
#15 0x0000000804b3e4d1 = >in pthread_getprio () from = >/lib/libthr.so.3
type=3D"cite">
#16 0x0000000000000000 in ?? = >()
type=3D"cite">(m3gdb)
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Mika Nystrom = >writes:
type=3D"cite">
Hello = >m3devel,
type=3D"cite">
type=3D"cite">
type=3D"cite">
I'm = >running into problems with the current release = >candidate.
type=3D"cite">
I'm = >attaching a backtrace from one crash, but I think I also am = > 
type=3D"cite">
type=3D"cite">seeing
type=3D"cite">
type=3D"cite">deadlocks in the threading system---my application goes = >catatonic.
type=3D"cite">
Of = >course it *is* possible it's a bug in my application, but it = >works
type=3D"cite">
on PM3 = >and on CM3 on = >PPC_DARWIN.
type=3D"cite">
type=3D"cite">
type=3D"cite">
Finally = >I'm still concerned about threading performance but in the = > 
type=3D"cite">
type=3D"cite">light
type=3D"cite">
of the = >bugs it's hard to say much about it yet, I = >think...
type=3D"cite">
type=3D"cite">
type=3D"cite">
(The = >program in question is a highly multithreaded stock = >market
type=3D"cite">
type=3D"cite">simulator.)
quote type=3D"cite">
type=3D"cite">
type=3D"cite">
= >  Mika
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** = >runtime error:
type=3D"cite">
*** = >   <*ASSERT*> = >failed.
type=3D"cite">
*** = >   file "../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program = >received signal SIGABRT, = >Aborted.
type=3D"cite">
type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
(m3gdb) = >show args
type=3D"cite">
Argument= > list to give program being debugged when it is started is = > 
type=3D"cite">
type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >-bugbehavior None - = >
type=3D"cite">
type=3D"cite">symbology ric -symbology = >tws
type=3D"cite">
-replay = >mktisolator090910.ticks 2009-09-10 at 13:30 -to = > 
type=3D"cite">
type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 = >-dp 0.15  
type=3D"cite">
7007 = >-dp 0.20 7009 -dp 0.25 7011 -dp = >0.30
type=3D"cite">
7013 = >-sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = > 
type=3D"cite">
type=3D"cite">isolate90.src".
lockquote type=3D"cite">
type=3D"cite">(m3gdb) = >where
type=3D"cite">
#0 = > 0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
type=3D"cite">
#1 = > 0x0000000804d2ef8b in abort () from = >/lib/libc.so.7
type=3D"cite">
#2 = > 0x0000000803777bf7 in Crash () at = >../src/runtime/POSIX/RTOS.m3:20
= >
type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTProcess.m3:65
quote>
type=3D"cite">#4  0x0000000803768ab2 in EndError (crash=3DInvalid = >C/C++ type code = > 
type=3D"cite">
36 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:118
uote>
type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/C++ = >type code 35 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTError.m3:40
ote>
type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:79
ckquote>
type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:39
ckquote>
type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/C++ = >type code 30 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#10 0x0000000803768cee in DefaultBackstop (a=3DInvalid = >C/C++ type  
type=3D"cite">
code = >30 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:47
ckquote>
type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >C/C++ type code = > 
type=3D"cite">
30 in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTException.m3:25
ckquote>
type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ type = >code 30 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/ex_frame/RTExFrame.m3:29
ckquote>
type=3D"cite">#13 0x0000000803750241 in ReportFault (module=3DInvalid = >C/C++ type  
type=3D"cite">
code = >35 in symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTHooks.m3:110
uote>
type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C++ = >type code 39 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
type=3D"cite">)
type=3D"cite">
from = >/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
lockquote>
type=3D"cite">
#15 0x000000080377d1bc in Fork = >(closure=3DInvalid C/C++ type code 26 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktPlace.m3:116
te type=3D"cite">
#17 = >0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = > 
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/MktIsolator.m3:514
quote type=3D"cite">
type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ type = >code 39 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/Main.m3:734
type=3D"cite">
#19 = >0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = > 
type=3D"cite">
in = >symbol table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:400
quote>
type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ type = >code 29 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:114
quote>
type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ type = >code 31 in  
type=3D"cite">
symbol = >table.
type=3D"cite">
) at = >../src/runtime/common/RTLinker.m3:123
quote>
type=3D"cite">---Type <return> to continue, or q <return> to = >quit---
type=3D"cite">
#22 = >0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = > 
type=3D"cite">
type=3D"cite">envp=3D0x7fffffffdf50) at = >_m3main.mc:4
type=3D"cite">
#23 = >0x00000000004040de in _start = >()
type=3D"cite">
(m3gdb) = >up 15
type=3D"cite">
#15 = >0x000000080377d1bc in Fork = >(closure=3D16_00000008064c8930)
= >
type=3D"cite">  at = >../src/thread/PTHREAD/ThreadPThread.m3:589
blockquote>
type=3D"cite">589         WITH = >r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = > 
type=3D"cite">
type=3D"cite">END;
type=3D"cite">
Current = >language:  auto; currently = >Modula-3
type=3D"cite">
(m3gdb) = >print r
type=3D"cite">
$1 =3D = >11
type=3D"cite">
type=3D"cite">(m3gdb)
e type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-21--467118296
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; ">Which pthread = >library are you =3D
linking = >to?<br><div apple-content-edited=3D3D"true"> <span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; color: = >=3D
rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: =3D
type=3D"cite">normal; font-variant: normal; font-weight: normal; = >letter-spacing: =3D
normal; = >line-height: normal; orphans: 2; text-align: auto; text-indent: = >=3D
0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: = >=3D
0px; = >-webkit-border-horizontal-spacing: 0px; =3D
type=3D"cite">-webkit-border-vertical-spacing: 0px; = >=3D
type=3D"cite">-webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 12:15, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><div><br>More details about = >the "catatonic" case. =3D
type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >ctrl-\<br>won't wake it up properly. =3D
type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >to<br>abort and dump core. =3D
type=3D"cite">&nbsp;It does nothing to my program now! &nbsp;And = >I think<br>I've "lost =3D
type=3D"cite">threads" before, = >too.<br><br>Btw,<br><br>(90)ginger:~/t&gt;unam= >e =3D
-a<br>FreeBSD = >ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >=3D
07:18:07 UTC 2009 = >&nbsp;&nbsp;&nbsp;&nbsp;<a = >=3D
href=3D3D"href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >falo.edu">href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed<= >/a>=3D
type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >&nbsp;amd64<br><br>I'm happy to help = >=3D
debug if someone can give = >me some pointers...<br><br><br> = >=3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >>^\<br>Program received signal =3D
type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in sigsuspend = >() from =3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >cont<br>Continuing.<br><br><br>***<br>*** = >=3D
runtime = >error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >;br><br><br>^\<br>Program received = >=3D
signal SIGQUIT, = >Quit.<br>0x0000000804ca037c in sigsuspend () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >&nbsp;0x0000000804ca037c in =3D
type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >&nbsp;0x0000000804b41d0a in =3D
type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >&nbsp;0x0000000803780da0 in =3D
type=3D"cite">ThreadPThread__sigsuspend ()<br> = >&nbsp;&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c:117<br>#3 = >=3D
&nbsp;0x000000080377ff6f= > in SignalHandler (sig=3D3DInvalid C/C++ type code = >=3D
28 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:1261<br>#4 = >&nbsp;&lt;signal =3D
type=3D"cite">handler called&gt;<br>#5 = >&nbsp;0x0000000804b4829c in __error () from = >=3D
/lib/libthr.so.3<br>#6= > &nbsp;0x0000000804b46365 in pthread_cond_signal = >=3D
() from = >/lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >=3D
(self=3D3DInvalid C/C++ = >type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:227<br>#8 = >=3D
&nbsp;0x000000080377b026= > in Wait (m=3D3DInvalid C/C++ type code 26 in = >=3D
symbol table.<br>) = >at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >=3D
&nbsp;0x000000080294a39c= > in WaitE (on=3D3DInvalid C/C++ type code 30 in = >=3D
symbol table.<br>) = >at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >=3D
(on=3D3DInvalid C/C++ type = >code 30 in symbol table.<br>) at =3D
type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >WaitLocked (t=3D3DInvalid =3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktAsset.m3:117<br>#12 0x00000008011b4950 in = >RecApply (cl=3D3DInvalid=3D
type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >=3D
type=3D"cite">../src/MktPlace.m3:469<br>#13 0x000000080377cdf3 in = >RunThread =3D
(me=3D3DInvalid = >C/C++ type code 29 in symbol table.<br>) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:547<br>#14 = >0x000000080377ca6a in =3D
type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in symbol = >table.<br>) at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:523<br>#15 = >0x0000000804b3e4d1 in =3D
type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >0x0000000000000000 in ?? =3D
type=3D"cite">()<br>(m3gdb) <br><br><br>Mika = >Nystrom writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite">Hello = >m3devel,<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">I'm running =3D
type=3D"cite">into problems with the current release = >=3D
type=3D"cite">candidate.<br></blockquote><blockquote = >type=3D3D"cite">I'm attaching a =3D
type=3D"cite">backtrace from one crash, but I think I also am = >=3D
type=3D"cite">seeing<br></blockquote><blockquote = >type=3D3D"cite">deadlocks in the =3D
type=3D"cite">threading system---my application goes = >=3D
type=3D"cite">catatonic.<br></blockquote><blockquote = >type=3D3D"cite">Of course it *is* =3D
type=3D"cite">possible it's a bug in my application, but it = >=3D
type=3D"cite">works<br></blockquote><blockquote = >type=3D3D"cite">on PM3 and on CM3 on =3D
type=3D"cite">PPC_DARWIN.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Finally I'm =3D
type=3D"cite">still concerned about threading performance but in the = >=3D
type=3D"cite">light<br></blockquote><blockquote = >type=3D3D"cite">of the bugs it's hard to = >=3D
say much about it yet, I = >think...<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">(The program in =3D
type=3D"cite">question is a highly multithreaded stock = >=3D
type=3D"cite">market<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">simulator.)<br></blockquote>&= >lt;blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite"> =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></blockquote&= >gt;<blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote type=3D3D"cite">*** runtime =3D
type=3D"cite">error:<br></blockquote><blockquote = >type=3D3D"cite">*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br></blockquote><blockquote = >=3D
type=3D3D"cite">*** = >&nbsp;&nbsp;&nbsp;file =3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">***<br></blockquote><block= >quote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Program =3D
type=3D"cite">received signal SIGABRT, = >Aborted.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) show =3D
type=3D"cite">args<br></blockquote><blockquote = >type=3D3D"cite">Argument list to give =3D
type=3D"cite">program being debugged when it is started is = >"@M3debugtrace=3D3Dmktsim.out =3D
type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >-symbology =3D
type=3D"cite">tws<br></blockquote><blockquote = >type=3D3D"cite">-replay =3D
type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >2009-09-10 at 15:59 -port 7001 =3D
type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 = >-dp 0.25 7011 =3D
-dp 0.30 = ><br></blockquote><blockquote type=3D3D"cite">7013 = >-sync 60 =3D
-unsolicitedfills = >0.5 -cp 0.5 -xtimeport 7200 =3D
type=3D"cite">isolate90.src".<br></blockquote><blockquote = >type=3D3D"cite">(m3gdb) =3D
type=3D"cite">where<br></blockquote><blockquote = >type=3D3D"cite">#0 =3D
type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#1 =3D
type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >=3D
type=3D"cite">/lib/libc.so.7<br></blockquote><blockquote = >type=3D3D"cite">#2 =3D
type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >=3D
type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></blockquote>= ><blockquote =3D
type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >Crash (msg=3D3DInvalid C/C++ =3D
type=3D"cite">type code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTProcess.m3:65<br></blockquote><bloc= >kquote =3D
type=3D3D"cite">#4= > &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >=3D
C/C++ type code 36 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTError.m3:118<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in MsgS = >(file=3D3DInvalid C/C++ =3D
type= > code 35 in symbol table.<br></blockquote><blockquote = >type=3D3D"cite">) =3D
at = >../src/runtime/common/RTError.m3:40<br></blockquote><blockq= >uote =3D
type=3D3D"cite">#6 = >&nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >=3D
type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/common/RTException.m3:79<br></blockquote><bl= >ockquote =3D
type=3D3D"cite">= >#7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >=3D
C/C++ type code 30 in = >symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:39<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >Raise (act=3D3DInvalid C/C++ =3D
type=3D"cite">type code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >=3D
at = >../src/runtime/ex_frame/RTExFrame.m3:29<br></blockquote><bl= >ockquote =3D
type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >DefaultBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:47<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >InvokeBackstop (a=3D3DInvalid =3D
type=3D"cite">C/C++ type code 30 in symbol = >table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTException.m3:25<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >(act=3D3DInvalid C/C++ type =3D
type=3D"cite">code 30 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></blockq= >uote><blockquote =3D
type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in ReportFault = >(module=3D3DInvalid =3D
C/C++ = >type code 35 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></blockquot= >e><blockquote =3D
type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in _m3_fault = >(arg=3D3DInvalid C/C++ =3D
type = >code 39 in symbol table.<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">)<br></blockquote><blockqu= >ote type=3D3D"cite"> &nbsp;from =3D
type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5<br= >></blockquote><bl=3D
type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in Fork = >(closure=3D3DInvalid =3D
C/C++ = >type code 26 in symbol table.<br></blockquote><blockquote = >=3D
type=3D3D"cite">) at = >=3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >(t=3D3DInvalid C/C++ type =3D
type=3D"cite">code 26 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/MktPlace.m3:116<br></blockquote><block= >quote type=3D3D"cite">#17 =3D
type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type code = >26 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/MktIsolator.m3:514<br></blockquote><bl= >ockquote type=3D3D"cite">#18 =3D
type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ type = >code 39 in symbol =3D
type=3D"cite">table.<br></blockquote><blockquote = >type=3D3D"cite">) at =3D
type=3D"cite">../src/Main.m3:734<br></blockquote><blockquot= >e type=3D3D"cite">#19 =3D
type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C++ = >type code 29 in =3D
symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >(m=3D3DInvalid C/C++ type =3D
type=3D"cite">code 29 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >(b=3D3DInvalid C/C++ type =3D
type=3D"cite">code 31 in symbol = >table.<br></blockquote><blockquote type=3D3D"cite">) = >at =3D
type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></blockquo= >te><blockquote =3D
type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >continue, or q &lt;return&gt; to =3D
type=3D"cite">quit---<br></blockquote><blockquote = >type=3D3D"cite">#22 0x0000000000404194 =3D
type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >envp=3D3D0x7fffffffdf50) at =3D
type=3D"cite">_m3main.mc:4<br></blockquote><blockquote = >type=3D3D"cite">#23 =3D
type=3D"cite">0x00000000004040de in _start = >()<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >up 15<br></blockquote><blockquote type=3D3D"cite">#15 = >=3D
0x000000080377d1bc in Fork = >=3D
type=3D"cite">(closure=3D3D16_00000008064c8930)<br></blockquote&g= >t;<blockquote type=3D3D"cite">=3D
type=3D"cite">&nbsp;&nbsp;at =3D
type=3D"cite">../src/thread/PTHREAD/ThreadPThread.m3:589<br></blo= >ckquote><blockquote =3D
type=3D"cite">type=3D3D"cite">589 = >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >;nbsp;WITH r =3D
=3D3D = >pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >=3D
type=3D"cite">END;<br></blockquote><blockquote = >type=3D3D"cite">Current language: =3D
type=3D"cite">&nbsp;auto; currently = >Modula-3<br></blockquote><blockquote = >=3D
type=3D3D"cite">(m3gdb) = >print r<br></blockquote><blockquote = >type=3D3D"cite">$1=3D
=3D3D = >11<br></blockquote><blockquote type=3D3D"cite">(m3gdb) = >=3D
type=3D"cite"><br></blockquote><blockquote = >type=3D3D"cite"><br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
te>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
blockquote>
type=3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >=3D3D=3D3D=3D3D<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite"><br></blockquote></div>= ></blockquote></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-21--467118296--
ote>

= > >--Apple-Mail-24--465395183-- From hosking at cs.purdue.edu Sat Oct 31 19:59:19 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 14:59:19 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031185401.0E3761A209C@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: Can you try linking with -lthr? 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 31 Oct 2009, at 14:54, Mika Nystrom wrote: > Argh this is my first experience with FreeBSD 7. I thought this was > all simple and clear by now. > > PTHREAD(3) FreeBSD Library Functions Manual > PTHREAD(3) > > NAME > pthread -- POSIX thread functions > > LIBRARY > POSIX Threads Library (libpthread, -lpthread) > > SYNOPSIS > #include > > DESCRIPTION > POSIX threads are a set of functions that support applications > with > requirements for multiple flows of control, called threads, > within a > process. Multithreading is used to improve the performance of a > program. > > The POSIX thread functions are summarized in this section in the > follow- > ing groups: > > o Thread Routines > o Attribute Object Routines > o Mutex Routines > o Condition Variable Routines > o Read/Write Lock Routines > o Per-Thread Context Routines > o Cleanup Routines > > Thread Routines > int pthread_create(pthread_t *thread, const pthread_attr_t *attr, > void *(*start_routine)(void *), void *arg) > Creates a new thread of execution. > > int pthread_cancel(pthread_t thread) > ... > > IMPLEMENTATION NOTES > The current FreeBSD POSIX thread implementation is built in two > libraries, 1:1 Threading Library (libthr, -lthr), and N:M > Threading > Library (libkse, -lkse). They contain both thread-safe versions > of > Standard C Library (libc, -lc) functions and the thread functions. > Threaded applications are linked with one of these libraries. > > SEE ALSO > pthread_atfork(3), pthread_cancel(3), pthread_cleanup_pop(3), > pthread_cleanup_push(3), pthread_condattr_destroy(3), > pthread_condattr_init(3), pthread_cond_broadcast(3), > pthread_cond_destroy(3), pthread_cond_init(3), > pthread_cond_signal(3), > pthread_cond_timedwait(3), pthread_cond_wait(3), > pthread_create(3), > pthread_detach(3), pthread_equal(3), pthread_exit(3), > pthread_getspecific(3), pthread_join(3), pthread_key_delete(3), > pthread_kill(3), pthread_mutexattr_destroy(3), > pthread_mutexattr_getprioceiling(3), > pthread_mutexattr_getprotocol(3), > pthread_mutexattr_gettype(3), pthread_mutexattr_init(3), > pthread_mutexattr_setprioceiling(3), > pthread_mutexattr_setprotocol(3), > pthread_mutexattr_settype(3), pthread_mutex_destroy(3), > pthread_mutex_init(3), pthread_mutex_lock(3), > pthread_mutex_trylock(3), > pthread_mutex_unlock(3), pthread_once(3), > pthread_rwlockattr_destroy(3), > pthread_rwlockattr_getpshared(3), pthread_rwlockattr_init(3), > pthread_rwlockattr_setpshared(3), pthread_rwlock_destroy(3), > pthread_rwlock_init(3), pthread_rwlock_rdlock(3), > pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3), > pthread_self(3), > pthread_setcancelstate(3), pthread_setcanceltype(3), > pthread_setspecific(3), pthread_testcancel(3) > > STANDARDS > The functions with the pthread_ prefix and not _np suffix or > pthread_rwlock prefix conform to ISO/IEC 9945-1:1996 (``POSIX. > 1''). > > The functions with the pthread_ prefix and _np suffix are non- > portable > extensions to POSIX threads. > > The functions with the pthread_rwlock prefix are extensions > created by > The Open Group as part of the Version 2 of the Single UNIX > Specification > (``SUSv2''). > > FreeBSD 7.2 October 19, 2007 > FreeBSD 7.2 > > >> >> Do you know which one -lpthread gives you on FreeBSD? >> >> >> On 31 Oct 2009, at 14:26, Mika Nystrom wrote: >> >>> Let's see here we go: >>> >>> libc.so.7 => /lib/libc.so.7 (0x804c4e000) >>> >>> -> linking mktisolator >>> generate _m3main.new >>> compare _m3main.new _m3main.mc >>> rm _m3main.new >>> gcc -gstabs+ -m64 -fPIC -z now -z origin -Bsymbolic -Wl,--fatal- >>> warnings -Wl,--warn-common -Wl,-rpath,\$ORIGIN -Wl,-rpath,\ >>> $ORIGIN/../lib -o mktisolator _m3main.o MktIsolator.io >>> MktIsolator.mo Main.mo -Wl,-rpath,/home/mika/t/mscheme/ >>> modula3scheme/ >>> AMD64_FREEBSD -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD - >>> lmodula3scheme -Wl,-rpath,/home/mika/t/calarm/htmltable/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD - >>> lhtmltable -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD - >>> L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql -Wl,- >>> rpath,/usr/local/lib -L/usr/local/lib -lpq -Wl,-rpath,/home/mika/t/ >>> calarm/twslib/twslogger/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> twslogger/AMD64_FREEBSD -ltwslogger -Wl,-rpath,/home/mika/t/calarm/ >>> fastrw/AMD64_FREEBSD -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD - >>> lfastrw -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD -L/home/ >>> mika/ >>> t/calarm/gw/AMD64_FREEBSD -lgw -Wl,-rpath,/usr/local/cm3/pkg/ui/ >>> AMD64_FREEBSD -L/usr/local/c >>> m3/pkg/ui/AMD64_FREEBSD -lm3ui -Wl,-rpath,/usr/local/cm3/pkg/X11R4/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 - >>> Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/mktsim/AMD64_FREEBSD -lmktsim -Wl,-rpath,/home/mika/t/calarm/ >>> fix/fix42/AMD64_FREEBSD -L/home/mika/t/calarm/fix/fix42/ >>> AMD64_FREEBSD -lfix42 -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -L/home/mika/t/calarm/twslib/ >>> testtrade2/tradecore/AMD64_FREEBSD -ltradecore -Wl,-rpath,/home/ >>> mika/ >>> t/mscheme/AMD64_FREEBSD -L/home/mika/t/mscheme/AMD64_FREEBSD - >>> lmscheme -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -L/ >>> home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 -Wl,-rpath,/home/ >>> mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -L/home/mika/t/calarm/fix/ >>> fixcommon/AMD64_FREEBSD -lfixcommon -Wl,-rpath,/usr/local/cm3/pkg/ >>> parseparams/AMD64_FREEBSD -L/usr/local/cm3/pkg/parseparams/ >>> AMD64_FREEBSD -lm3parseparams -Wl,-rpath,/home/mika/t/mscheme/ >>> scheme- >>> lib/AMD64_FREE >>> BSD -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib - >>> Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/testtrade2/inventory/ >>> AMD64_FREEBSD -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib - >>> Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD -L/home/mika/t/rdwr/ >>> AMD64_FREEBSD -lrdwr -Wl,-rpath,/home/mika/t/calarm/anova/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova - >>> Wl,- >>> rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD -L/home/mika/t/ >>> calarm/ >>> finlib/AMD64_FREEBSD -lfinlib -Wl,-rpath,/home/mika/t/calarm/ >>> m3readline/AMD64_FREEBSD -L/home/mika/t/calarm/m3readline/ >>> AMD64_FREEBSD -lm3readline -Wl,-rpath,/home/mika/t/parserlib/ >>> parserlib/AMD64_FREEBSD -L/home/mika/t/parserlib/parserlib/ >>> AMD64_FREEBSD -lparserlib -Wl,-rpath,/home/mika/t/calarm/sx/ >>> AMD64_FREEBSD -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx -Wl,- >>> rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/ >>> mika/t/cit_util/AMD64_FREEBSD -lcit_util -Wl,-rpath,/usr/local/cm3/ >>> pkg/netobj/AMD64_FREEBSD -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD - >>> lm3netobj -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD -L/home/ >>> mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset -Wl,-rpath,/home/mika/t/ >>> cit_common/AMD64_FREEBSD -L/home/mika/t/cit_common/AMD64_FREEBSD - >>> lcit_common -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD -L/usr/ >>> local/cm3/pkg/set/AMD64_FREEBSD -lset -Wl,-rpath,/usr/local/cm3/pkg/ >>> libbuf/AMD64_FREEBSD -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD - >>> llibbuf -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/ >>> AMD64_FREEBSD - >>> L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >>> lpatternmatching - >>> Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> tcp/AMD64_FREEBSD -lm3tcp -Wl,-rpath,/usr/local/cm3/pkg/libm3/ >>> AMD64_FREEBSD -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 -Wl,- >>> rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -L/usr/local/cm3/pkg/ >>> m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib -lXaw -lX >>> mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread >>> rm m3make.args >>> cd . >>> >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Which pthread library are you linking to? >>>> >>>> On 31 Oct 2009, at 12:15, Mika Nystrom wrote: >>>> >>>>> >>>>> More details about the "catatonic" case. It's pretty bad. Even >>>>> ctrl-\ >>>>> won't wake it up properly. Ctrl-\ is supposed to cause the >>>>> program to >>>>> abort and dump core. It does nothing to my program now! And I >>>>> think >>>>> I've "lost threads" before, too. >>>>> >>>>> Btw, >>>>> >>>>> (90)ginger:~/t>uname -a >>>>> FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 >>>>> 07:18:07 UTC 2009 root at driscoll.cse.buffalo.edu:/usr/obj/usr/ >>>>> src/ >>>>> sys/GENERIC amd64 >>>>> >>>>> I'm happy to help debug if someone can give me some pointers... >>>>> >>>>> >>>>> Mika >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) cont >>>>> Continuing. >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** aborted >>>>> >>>>> >>>>> >>>>> >>>>> ^\ >>>>> Program received signal SIGQUIT, Quit. >>>>> 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> (m3gdb) where >>>>> #0 0x0000000804ca037c in sigsuspend () from /lib/libc.so.7 >>>>> #1 0x0000000804b41d0a in sigsuspend () from /lib/libthr.so.3 >>>>> #2 0x0000000803780da0 in ThreadPThread__sigsuspend () >>>>> at ../src/thread/PTHREAD/ThreadPThreadC.c:117 >>>>> #3 0x000000080377ff6f in SignalHandler (sig=Invalid C/C++ type >>>>> code >>>>> 28 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:1261 >>>>> #4 >>>>> #5 0x0000000804b4829c in __error () from /lib/libthr.so.3 >>>>> #6 0x0000000804b46365 in pthread_cond_signal () from /lib/ >>>>> libthr.so.3 >>>>> #7 0x000000080377a85d in XWait (self=Invalid C/C++ type code 26 >>>>> in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:227 >>>>> #8 0x000000080377b026 in Wait (m=Invalid C/C++ type code 26 in >>>>> symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:278 >>>>> #9 0x000000080294a39c in WaitE (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:217 >>>>> #10 0x000000080294999a in Wait (on=Invalid C/C++ type code 30 in >>>>> symbol table. >>>>> ) at ../src/SX.m3:152 >>>>> #11 0x00000008011ae748 in WaitLocked (t=Invalid C/C++ type code 26 >>>>> in symbol table. >>>>> ) at ../src/MktAsset.m3:117 >>>>> #12 0x00000008011b4950 in RecApply (cl=Invalid C/C++ type code >>>>> 26 in >>>>> symbol table. >>>>> ) at ../src/MktPlace.m3:469 >>>>> #13 0x000000080377cdf3 in RunThread (me=Invalid C/C++ type code 29 >>>>> in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:547 >>>>> #14 0x000000080377ca6a in ThreadBase (param=Invalid C/C++ type >>>>> code >>>>> 35 in symbol table. >>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:523 >>>>> #15 0x0000000804b3e4d1 in pthread_getprio () from /lib/libthr.so.3 >>>>> #16 0x0000000000000000 in ?? () >>>>> (m3gdb) >>>>> >>>>> >>>>> Mika Nystrom writes: >>>>>> Hello m3devel, >>>>>> >>>>>> I'm running into problems with the current release candidate. >>>>>> I'm attaching a backtrace from one crash, but I think I also am >>>>>> seeing >>>>>> deadlocks in the threading system---my application goes >>>>>> catatonic. >>>>>> Of course it *is* possible it's a bug in my application, but it >>>>>> works >>>>>> on PM3 and on CM3 on PPC_DARWIN. >>>>>> >>>>>> Finally I'm still concerned about threading performance but in >>>>>> the >>>>>> light >>>>>> of the bugs it's hard to say much about it yet, I think... >>>>>> >>>>>> (The program in question is a highly multithreaded stock market >>>>>> simulator.) >>>>>> >>>>>> Mika >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> *** >>>>>> *** runtime error: >>>>>> *** <*ASSERT*> failed. >>>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>>> *** >>>>>> >>>>>> >>>>>> Program received signal SIGABRT, Aborted. >>>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> (m3gdb) show args >>>>>> Argument list to give program being debugged when it is started >>>>>> is >>>>>> "@M3debugtrace=mktsim.out -tz America/New_York -bugbehavior >>>>>> None - >>>>>> symbology ric -symbology tws >>>>>> -replay mktisolator090910.ticks 2009-09-10 at 13:30 -to >>>>>> 2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 >>>>>> 7007 -dp 0.20 7009 -dp 0.25 7011 -dp 0.30 >>>>>> 7013 -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 >>>>>> isolate90.src". >>>>>> (m3gdb) where >>>>>> #0 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>>> #1 0x0000000804d2ef8b in abort () from /lib/libc.so.7 >>>>>> #2 0x0000000803777bf7 in Crash () at ../src/runtime/POSIX/ >>>>>> RTOS.m3:20 >>>>>> #3 0x000000080376b615 in Crash (msg=Invalid C/C++ type code 26 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTProcess.m3:65 >>>>>> #4 0x0000000803768ab2 in EndError (crash=Invalid C/C++ type code >>>>>> 36 in symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:118 >>>>>> #5 0x00000008037687aa in MsgS (file=Invalid C/C++ type code 35 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTError.m3:40 >>>>>> #6 0x0000000803768f85 in Crash (a=Invalid C/C++ type code 30 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:79 >>>>>> #7 0x0000000803768c3c in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:39 >>>>>> #8 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #9 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #10 0x0000000803768cee in DefaultBackstop (a=Invalid C/C++ type >>>>>> code 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:47 >>>>>> #11 0x0000000803768b6e in InvokeBackstop (a=Invalid C/C++ type >>>>>> code >>>>>> 30 in symbol table. >>>>>> ) at ../src/runtime/common/RTException.m3:25 >>>>>> #12 0x0000000803778eab in Raise (act=Invalid C/C++ type code 30 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/ex_frame/RTExFrame.m3:29 >>>>>> #13 0x0000000803750241 in ReportFault (module=Invalid C/C++ type >>>>>> code 35 in symbol table. >>>>>> ) at ../src/runtime/common/RTHooks.m3:110 >>>>>> #14 0x0000000803780acf in _m3_fault (arg=Invalid C/C++ type >>>>>> code 39 >>>>>> in symbol table. >>>>>> ) >>>>>> from /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5 >>>>>> #15 0x000000080377d1bc in Fork (closure=Invalid C/C++ type code >>>>>> 26 >>>>>> in symbol table. >>>>>> ) at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> #16 0x00000008011b1651 in AddAsset (t=Invalid C/C++ type code >>>>>> 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktPlace.m3:116 >>>>>> #17 0x00000000004085c6 in Init (t=Invalid C/C++ type code 26 in >>>>>> symbol table. >>>>>> ) at ../src/MktIsolator.m3:514 >>>>>> #18 0x00000000004106af in Main (mode=Invalid C/C++ type code 39 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/Main.m3:734 >>>>>> #19 0x0000000803767c19 in RunMainBody (m=Invalid C/C++ type >>>>>> code 29 >>>>>> in symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:400 >>>>>> #20 0x0000000803766e00 in AddUnitI (m=Invalid C/C++ type code >>>>>> 29 in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:114 >>>>>> #21 0x0000000803766e9e in AddUnit (b=Invalid C/C++ type code 31 >>>>>> in >>>>>> symbol table. >>>>>> ) at ../src/runtime/common/RTLinker.m3:123 >>>>>> ---Type to continue, or q to quit--- >>>>>> #22 0x0000000000404194 in main (argc=44, argv=0x7fffffffdde8, >>>>>> envp=0x7fffffffdf50) at _m3main.mc:4 >>>>>> #23 0x00000000004040de in _start () >>>>>> (m3gdb) up 15 >>>>>> #15 0x000000080377d1bc in Fork (closure=16_00000008064c8930) >>>>>> at ../src/thread/PTHREAD/ThreadPThread.m3:589 >>>>>> 589 WITH r = pthread_mutex_lock_active() DO <*ASSERT >>>>>> r=0*> >>>>>> END; >>>>>> Current language: auto; currently Modula-3 >>>>>> (m3gdb) print r >>>>>> $1 = 11 >>>>>> (m3gdb) >>>>>> >>>>>> ============================================================ >>>>>> >>>>>> >>>> >>>> >>>> --Apple-Mail-21--467118296 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">Which pthread library are >>>> you = >>>> linking to?
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; >>>> color: = >>>> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font- >>>> style: = >>>> normal; font-variant: normal; font-weight: normal; letter- >>>> spacing: = >>>> normal; line-height: normal; orphans: 2; text-align: auto; text- >>>> indent: = >>>> 0px; text-transform: none; white-space: normal; widows: 2; word- >>>> spacing: = >>>> 0px; -webkit-border-horizontal-spacing: 0px; = >>>> -webkit-border-vertical-spacing: 0px; = >>>> -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 12:15, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">

More details about the "catatonic" case. = >>>>  It's pretty bad.  Even ctrl-\
won't wake it up >>>> properly. = >>>>  Ctrl-\ is supposed to cause the program to
abort and dump >>>> core. = >>>>  It does nothing to my program now!  And I think
I've >>>> "lost = >>>> threads" before, too.

Btw,

(90)ginger:~/t>uname = >>>> -a
FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May >>>>  1 = >>>> 07:18:07 UTC 2009     
>>> href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >>>> = >>>> u:/usr/obj/usr/src/sys/GENERIC  amd64

I'm happy to >>>> help = >>>> debug if someone can give me some pointers...


= >>>>     Mika

^\
Program received signal = >>>> SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) >>>> cont
Continuing.


***
*** = >>>> runtime error:
*** = >>>>    aborted




^\
Program >>>> received = >>>> signal SIGQUIT, Quit.
0x0000000804ca037c in sigsuspend () from = >>>> /lib/libc.so.7
(m3gdb) where
#0  0x0000000804ca037c in = >>>> sigsuspend () from /lib/libc.so.7
#1  0x0000000804b41d0a >>>> in = >>>> sigsuspend () from /lib/libthr.so.3
#2  0x0000000803780da0 >>>> in = >>>> ThreadPThread__sigsuspend ()
   at = >>>> ../src/thread/PTHREAD/ThreadPThreadC.c:117
#3 = >>>>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >>>> code = >>>> 28 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:1261
#4 >>>>  <signal = >>>> handler called>
#5  0x0000000804b4829c in __error () >>>> from = >>>> /lib/libthr.so.3
#6  0x0000000804b46365 in >>>> pthread_cond_signal = >>>> () from /lib/libthr.so.3
#7  0x000000080377a85d in XWait = >>>> (self=3DInvalid C/C++ type code 26 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:227
#8 = >>>>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 >>>> in = >>>> symbol table.
) at ../src/thread/PTHREAD/ >>>> ThreadPThread.m3:278
#9 = >>>>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >>>> in = >>>> symbol table.
) at ../src/SX.m3:217
#10 0x000000080294999a in >>>> Wait = >>>> (on=3DInvalid C/C++ type code 30 in symbol table.
) at = >>>> ../src/SX.m3:152
#11 0x00000008011ae748 in WaitLocked >>>> (t=3DInvalid = >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktAsset.m3:117
#12 0x00000008011b4950 in RecApply >>>> (cl=3DInvalid= >>>> C/C++ type code 26 in symbol table.
) at = >>>> ../src/MktPlace.m3:469
#13 0x000000080377cdf3 in RunThread = >>>> (me=3DInvalid C/C++ type code 29 in symbol table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:547
#14 >>>> 0x000000080377ca6a in = >>>> ThreadBase (param=3DInvalid C/C++ type code 35 in symbol >>>> table.
) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:523
#15 >>>> 0x0000000804b3e4d1 in = >>>> pthread_getprio () from /lib/libthr.so.3
#16 0x0000000000000000 >>>> in ?? = >>>> ()
(m3gdb)


Mika Nystrom writes:
>>> type=3D"cite">Hello m3devel,
>>> type=3D"cite">
I'm >>>> running = >>>> into problems with the current release = >>>> candidate.
I'm attaching >>>> a = >>>> backtrace from one crash, but I think I also am = >>>> seeing
deadlocks in the = >>>> threading system---my application goes = >>>> catatonic.
Of course it >>>> *is* = >>>> possible it's a bug in my application, but it = >>>> works
on PM3 and on CM3 >>>> on = >>>> PPC_DARWIN.
>>> type=3D"cite">
Finally >>>> I'm = >>>> still concerned about threading performance but in the = >>>> light
of the bugs it's >>>> hard to = >>>> say much about it yet, I think...
>>> type=3D"cite">
(The >>>> program in = >>>> question is a highly multithreaded stock = >>>> market
>>> type=3D"cite">simulator.)
>>> type=3D"cite">
= >>>>    Mika
>>> type=3D"cite">
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">***
*** >>>> runtime = >>>> error:
*** = >>>>    <*ASSERT*> failed.
>>> blockquote>
>>> type=3D"cite">***    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
>>> type=3D"cite">***
>>> type=3D"cite">
>>> type=3D"cite">
Program = >>>> received signal SIGABRT, Aborted.
>>> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb) >>>> show = >>>> args
Argument list to >>>> give = >>>> program being debugged when it is started is >>>> "@M3debugtrace=3Dmktsim.out = >>>> -tz America/New_York -bugbehavior None -symbology ric -symbology = >>>> tws
-replay = >>>> mktisolator090910.ticks 2009-09-10 at 13:30 -to 2009-09-10 at 15:59 -port >>>> 7001 = >>>> -dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 7009 -dp 0.25 >>>> 7011 = >>>> -dp 0.30
7013 -sync 60 = >>>> -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>>> isolate90.src".
(m3gdb) = >>>> where
#0 = >>>>  0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
#1 = >>>>  0x0000000804d2ef8b in abort () from = >>>> /lib/libc.so.7
#2 = >>>>  0x0000000803777bf7 in Crash () at = >>>> ../src/runtime/POSIX/RTOS.m3:20
>>> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid >>>> C/ >>>> C++ = >>>> type code 26 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTProcess.m3:65
>>> blockquote>
>>> type=3D"cite">#4  0x0000000803768ab2 in EndError >>>> (crash=3DInvalid = >>>> C/C++ type code 36 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTError.m3:118
>>> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid >>>> C/ >>>> C++ = >>>> type code 35 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTError.m3:40
>>> blockquote>
>>> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/ >>>> C+ >>>> + = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/common/RTException.m3:79
>>> blockquote>
>>> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:39
>>> blockquote>
>>> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid >>>> C/ >>>> C++ = >>>> type code 30 in symbol table.
>>> type=3D"cite">) = >>>> at ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:47
>>> blockquote>
>>> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop >>>> (a=3DInvalid = >>>> C/C++ type code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTException.m3:25
>>> blockquote>
>>> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >>>> type = >>>> code 30 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/ex_frame/RTExFrame.m3:29
>>> blockquote>
>>> type=3D"cite">#13 0x0000000803750241 in ReportFault >>>> (module=3DInvalid = >>>> C/C++ type code 35 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTHooks.m3:110
>>> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid >>>> C/C >>>> ++ = >>>> type code 39 in symbol table.
>>> type=3D"cite">)
>>>>  from = >>>> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
>>> blockquote>>>> ockquote type=3D"cite">#15 0x000000080377d1bc in Fork >>>> (closure=3DInvalid = >>>> C/C++ type code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ >>>> type = >>>> code 26 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/MktPlace.m3:116
>>> type=3D"cite">#17 = >>>> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in >>>> symbol = >>>> table.
) at = >>>> ../src/MktIsolator.m3:514
>>> type=3D"cite">#18 = >>>> 0x00000000004106af in Main (mode=3DInvalid C/C++ type code 39 in >>>> symbol = >>>> table.
) at = >>>> ../src/Main.m3:734
#19 = >>>> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 >>>> in = >>>> symbol table.
) at = >>>> ../src/runtime/common/RTLinker.m3:400
>>> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >>>> type = >>>> code 29 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:114
>>> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >>>> type = >>>> code 31 in symbol table.
>>> type=3D"cite">) at = >>>> ../src/runtime/common/RTLinker.m3:123
>>> type=3D"cite">---Type <return> to continue, or q >>>> <return> to = >>>> quit---
#22 >>>> 0x0000000000404194 = >>>> in main (argc=3D44, argv=3D0x7fffffffdde8, envp=3D0x7fffffffdf50) >>>> at = >>>> _m3main.mc:4
#23 = >>>> 0x00000000004040de in _start ()
>>> type=3D"cite">(m3gdb) up 15
>>> type=3D"cite">#15 = >>>> 0x000000080377d1bc in Fork = >>>> (closure=3D16_00000008064c8930)
>>> type=3D"cite">= >>>>   at = >>>> ../src/thread/PTHREAD/ThreadPThread.m3:589
>>> blockquote>
>>> type=3D"cite">589 >>>>         WITH r = >>>> =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>>> END;
Current language: = >>>>  auto; currently Modula-3
>>> type=3D"cite">(m3gdb) print r
>>> type=3D"cite">$1= >>>> =3D 11
(m3gdb) = >>>>

>>> blockquote>
>>> type >>>> = >>>> 3D >>>> "cite >>>> ">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> = >>>> 3D >>>> = >>>> 3D >>>> = >>>> 3D >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> blockquote>
>>> type=3D"cite">
>>> type=3D"cite">

>>> body>= >>>> >>>> --Apple-Mail-21--467118296-- >> >> >> --Apple-Mail-24--465395183 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">Do you know which one - >> lpthread = >> gives you on FreeBSD?
> class=3D"Apple-style-span" style=3D"border-collapse: separate; >> color: = >> rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: = >> normal; font-variant: normal; font-weight: normal; letter-spacing: = >> normal; line-height: normal; orphans: 2; text-align: auto; text- >> indent: = >> 0px; text-transform: none; white-space: normal; widows: 2; word- >> spacing: = >> 0px; -webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: 0px; = >> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>

On 31 >> Oct = >> 2009, at 14:26, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Let's = >> see here we go:

= >>        libc.so.7 =3D> = >> /lib/libc.so.7 (0x804c4e000)

-> linking = >> mktisolator
generate _m3main.new
compare _m3main.new = >> _m3main.mc
rm _m3main.new
gcc -gstabs+ -m64 -fPIC -z now -z >> origin = >> -Bsymbolic -Wl,--fatal-warnings -Wl,--warn-common -Wl,-rpath,\ >> $ORIGIN = >> -Wl,-rpath,\$ORIGIN/../lib -o mktisolator  _m3main.o >> MktIsolator.io = >> MktIsolator.mo Main.mo = >> -Wl,-rpath,/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/modula3scheme/AMD64_FREEBSD -lmodula3scheme = >> -Wl,-rpath,/home/mika/t/calarm/htmltable/AMD64_FREEBSD = >> -L/home/mika/t/calarm/htmltable/AMD64_FREEBSD -lhtmltable = >> -Wl,-rpath,/home/mika/t/calarm/postgresql/AMD64_FREEBSD = >> -L/home/mika/t/calarm/postgresql/AMD64_FREEBSD -lpostgresql = >> -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lpq = >> -Wl,-rpath,/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/twslogger/AMD64_FREEBSD -ltwslogger = >> -Wl,-rpath,/home/mika/t/calarm/fastrw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fastrw/AMD64_FREEBSD -lfastrw = >> -Wl,-rpath,/home/mika/t/calarm/gw/AMD64_FREEBSD = >> -L/home/mika/t/calarm/gw/AMD64_FREEBSD -lgw = >> -Wl,-rpath,/usr/local/cm3/pkg/ui/AMD64_FREEBSD -L/usr/local/c
= >> m3/pkg/ui/AMD64_FREEBSD -lm3ui = >> -Wl,-rpath,/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/X11R4/AMD64_FREEBSD -lm3X11R4 = >> -Wl,-rpath,/home/mika/t/calarm/mktsim/AMD64_FREEBSD = >> -L/home/mika/t/calarm/mktsim/AMD64_FREEBSD -lmktsim = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix42/AMD64_FREEBSD -lfix42 = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/tradecore/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/tradecore/AMD64_FREEBSD = >> -ltradecore -Wl,-rpath,/home/mika/t/mscheme/AMD64_FREEBSD = >> -L/home/mika/t/mscheme/AMD64_FREEBSD -lmscheme = >> -Wl,-rpath,/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fix41/AMD64_FREEBSD -lfix41 = >> -Wl,-rpath,/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD = >> -L/home/mika/t/calarm/fix/fixcommon/AMD64_FREEBSD -lfixcommon = >> -Wl,-rpath,/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/parseparams/AMD64_FREEBSD -lm3parseparams = >> -Wl,-rpath,/home/mika/t/mscheme/scheme-lib/AMD64_FREE
BSD = >> -L/home/mika/t/mscheme/scheme-lib/AMD64_FREEBSD -lscheme-lib = >> -Wl,-rpath,/home/mika/t/calarm/twslib/testtrade2/inventory/ >> AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/testtrade2/inventory/AMD64_FREEBSD = >> -linventory -Wl,-rpath,/home/mika/t/calarm/twslib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/twslib/AMD64_FREEBSD -ltwslib = >> -Wl,-rpath,/home/mika/t/rdwr/AMD64_FREEBSD = >> -L/home/mika/t/rdwr/AMD64_FREEBSD -lrdwr = >> -Wl,-rpath,/home/mika/t/calarm/anova/AMD64_FREEBSD = >> -L/home/mika/t/calarm/anova/AMD64_FREEBSD -lanova = >> -Wl,-rpath,/home/mika/t/calarm/finlib/AMD64_FREEBSD = >> -L/home/mika/t/calarm/finlib/AMD64_FREEBSD -lfinlib = >> -Wl,-rpath,/home/mika/t/calarm/m3readline/AMD64_FREEBSD = >> -L/home/mika/t/calarm/m3readline/AMD64_FREEBSD -lm3readline = >> -Wl,-rpath,/home/mika/t/parserlib/parserlib/AMD64_FREEBSD = >> -L/home/mika/t/parserlib/parserlib/AMD64_FREEBSD -lparserlib = >> -Wl,-rpath,/home/mika/t/calarm/sx/AMD64_FREEBSD = >> -L/home/mika/t/calarm/sx/AMD64_FREEBSD -lsx = >> -Wl,-rpath,/home/mika/t/cit_util/AMD64_FREEBSD -L/home/
= >> mika/t/cit_util/AMD64_FREEBSD -lcit_util = >> -Wl,-rpath,/usr/local/cm3/pkg/netobj/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/netobj/AMD64_FREEBSD -lm3netobj = >> -Wl,-rpath,/home/mika/t/rdwrreset/AMD64_FREEBSD = >> -L/home/mika/t/rdwrreset/AMD64_FREEBSD -lrdwrreset = >> -Wl,-rpath,/home/mika/t/cit_common/AMD64_FREEBSD = >> -L/home/mika/t/cit_common/AMD64_FREEBSD -lcit_common = >> -Wl,-rpath,/usr/local/cm3/pkg/set/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/set/AMD64_FREEBSD -lset = >> -Wl,-rpath,/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libbuf/AMD64_FREEBSD -llibbuf = >> -Wl,-rpath,/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/patternmatching/AMD64_FREEBSD - >> lpatternmatching = >> -Wl,-rpath,/usr/local/cm3/pkg/tcp/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/tcp/AMD64_FREEBSD -lm3tcp = >> -Wl,-rpath,/usr/local/cm3/pkg/libm3/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/libm3/AMD64_FREEBSD -lm3 = >> -Wl,-rpath,/usr/local/cm3/pkg/m3core/AMD64_FREEBSD = >> -L/usr/local/cm3/pkg/m3core/AMD64_FREEBSD -lm3core -L/usr/X11R6/lib = >> -lXaw -lX
mu -lXext -lXt -lSM -lICE -lX11 -lm -lpthread
rm = >> m3make.args
cd .


Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Which >> pthread = >> library are you linking to?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 12:15, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
More details about the = >> "catatonic" case.  It's pretty bad.  Even = >>  
> type=3D"cite">
> type=3D"cite">ctrl-\
> type=3D"cite">
won't wake it up properly. = >>  Ctrl-\ is supposed to cause the program = >> to
> type=3D"cite">
> type=3D"cite">abort and dump core.  It does nothing to my >> program = >> now!  And I think
> type=3D"cite">
I've "lost threads" before, = >> too.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Btw,
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
(90)ginger:~/t>uname = >> -a
> type=3D"cite">
> type=3D"cite">FreeBSD ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: >> Fri May = >>  1  
> type=3D"cite">
07:18:07 UTC 2009 = >>     > href=3D"mailto:root at driscoll.cse.buffalo.edu">root at driscoll.cse.buffalo.ed >> = >> u:/usr/obj/usr/src/
> type=3D"cite">
sys/GENERIC = >>  amd64
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
I'm happy to help debug if = >> someone can give me some = >> pointers...
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
= >>    Mika
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> cont
> type=3D"cite">
> type=3D"cite">Continuing.
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">*** = >>    aborted
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">^\
> type=3D"cite">
Program received signal >> SIGQUIT, = >> Quit.
> type=3D"cite">
> type=3D"cite">0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0  0x0000000804ca037c in sigsuspend () from = >> /lib/libc.so.7
> type=3D"cite">
#1  0x0000000804b41d0a >> in = >> sigsuspend () from = >> /lib/libthr.so.3
> type=3D"cite">
#2  0x0000000803780da0 >> in = >> ThreadPThread__sigsuspend ()
> blockquote>
> type=3D"cite">
  at = >> ../src/thread/PTHREAD/ThreadPThreadC.c:117
> blockquote>> lockquote type=3D"cite">
#3 = >>  0x000000080377ff6f in SignalHandler (sig=3DInvalid C/C++ type >> code = >>  
> type=3D"cite">
> type=3D"cite">28 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:1261
> blockquote><= >> blockquote type=3D"cite">
#4 >>  <signal = >> handler called>
> type=3D"cite">
#5  0x0000000804b4829c >> in = >> __error () from = >> /lib/libthr.so.3
> type=3D"cite">
#6  0x0000000804b46365 >> in = >> pthread_cond_signal () from = >> /lib/libthr.so.3
> type=3D"cite">
#7  0x000000080377a85d >> in = >> XWait (self=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:227
> blockquote>> lockquote type=3D"cite">
#8 = >>  0x000000080377b026 in Wait (m=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:278
> blockquote>> lockquote type=3D"cite">
#9 = >>  0x000000080294a39c in WaitE (on=3DInvalid C/C++ type code 30 >> in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:217
> type=3D"cite">
#10 0x000000080294999a in >> Wait = >> (on=3DInvalid C/C++ type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/SX.m3:152
> type=3D"cite">
#11 0x00000008011ae748 in = >> WaitLocked (t=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktAsset.m3:117
> type=3D"cite">
#12 0x00000008011b4950 in = >> RecApply (cl=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/MktPlace.m3:469
> type=3D"cite">
#13 0x000000080377cdf3 in = >> RunThread (me=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in symbol table.
> blockquote>
> type=3D"cite">
) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:547
> blockquote>> lockquote type=3D"cite">
#14 >> 0x000000080377ca6a = >> in ThreadBase (param=3DInvalid C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">35 in symbol = >> table.
> type=3D"cite">
> type=3D"cite">) at = >> ../src/thread/PTHREAD/ThreadPThread.m3:523
> blockquote>> lockquote type=3D"cite">
#15 >> 0x0000000804b3e4d1 = >> in pthread_getprio () from = >> /lib/libthr.so.3
> type=3D"cite">
#16 0x0000000000000000 >> in ?? = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Mika Nystrom = >> writes:
> type=3D"cite">> type=3D"cite">
Hello = >> m3devel,
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">I'm = >> running into problems with the current release = >> candidate.
> type=3D"cite">
> type=3D"cite">I'm = >> attaching a backtrace from one crash, but I think I also am = >>  
> type=3D"cite">
> type=3D"cite">seeing
> blockquote>> type=3D"cite">
> type=3D"cite">deadlocks in the threading system---my application >> goes = >> catatonic.
> type=3D"cite">
> type=3D"cite">Of = >> course it *is* possible it's a bug in my application, but it = >> works
> type=3D"cite">
> type=3D"cite">on PM3 = >> and on CM3 on = >> PPC_DARWIN.
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Finally = >> I'm still concerned about threading performance but in the = >>  
> type=3D"cite">
> type=3D"cite">light
> blockquote>
> type=3D"cite">
> type=3D"cite">of the = >> bugs it's hard to say much about it yet, I = >> think...
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">(The = >> program in question is a highly multithreaded stock = >> market
> type=3D"cite">
> type=3D"cite">simulator.)
> blockquote>> quote type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
= >>   Mika
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >> runtime error:
> blockquote>
> type=3D"cite">
> type=3D"cite">*** = >>    <*ASSERT*> = >> failed.
> type=3D"cite">
> type=3D"cite">*** = >>    file "../src/thread/PTHREAD/ThreadPThread.m3", >> line = >> 589
> type=3D"cite">
> type=3D"cite">***
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Program = >> received signal SIGABRT, = >> Aborted.
> type=3D"cite">
> type=3D"cite">0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> show args
> type=3D"cite">
> type=3D"cite">Argument= >> list to give program being debugged when it is started is = >>  
> type=3D"cite">
> type=3D"cite">"@M3debugtrace=3Dmktsim.out -tz America/New_York = >> -bugbehavior None - = >>
> type=3D"cite">
> type=3D"cite">symbology ric -symbology = >> tws
> type=3D"cite">
- >> replay = >> mktisolator090910.ticks 2009-09-10 at 13:30 -to = >>  
> type=3D"cite">
> type=3D"cite">2009-09-10 at 15:59 -port 7001 -dp 0.05 7003 -dp 0.10 >> 7005 = >> -dp 0.15  
> blockquote>
> type=3D"cite">
> type=3D"cite">7007 = >> -dp 0.20 7009 -dp 0.25 7011 -dp = >> 0.30
> type=3D"cite">
> type=3D"cite">7013 = >> -sync 60 -unsolicitedfills 0.5 -cp 0.5 -xtimeport 7200 = >>  
> type=3D"cite">
> type=3D"cite">isolate90.src".
> blockquote>> lockquote type=3D"cite">
> type=3D"cite">(m3gdb) = >> where
> type=3D"cite">
> type=3D"cite">#0 = >>  0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#1 = >>  0x0000000804d2ef8b in abort () from = >> /lib/libc.so.7
> blockquote>
> type=3D"cite">
> type=3D"cite">#2 = >>  0x0000000803777bf7 in Crash () at = >> ../src/runtime/POSIX/RTOS.m3:20
> blockquote>= >>
> type=3D"cite">#3  0x000000080376b615 in Crash (msg=3DInvalid C/ >> C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTProcess.m3:65
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#4  0x0000000803768ab2 in EndError >> (crash=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">36 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:118
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#5  0x00000008037687aa in MsgS (file=3DInvalid C/ >> C++ = >> type code 35 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTError.m3:40
> blockqu= >> ote>
> type=3D"cite">#6  0x0000000803768f85 in Crash (a=3DInvalid C/C+ >> + = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:79
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#7  0x0000000803768c3c in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:39
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#8  0x0000000803768b6e in InvokeBackstop >> (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#9  0x0000000803778eab in Raise (act=3DInvalid C/ >> C++ = >> type code 30 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#10 0x0000000803768cee in DefaultBackstop >> (a=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 30 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:47
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#11 0x0000000803768b6e in InvokeBackstop (a=3DInvalid = >> C/C++ type code = >>  
> type=3D"cite">
> type=3D"cite">30 in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTException.m3:25
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#12 0x0000000803778eab in Raise (act=3DInvalid C/C++ >> type = >> code 30 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/ex_frame/RTExFrame.m3:29
> blockquote>> ckquote>
> type=3D"cite">
> type=3D"cite">#13 0x0000000803750241 in ReportFault >> (module=3DInvalid = >> C/C++ type  
> blockquote>
> type=3D"cite">
> type=3D"cite">code = >> 35 in symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTHooks.m3:110
> blockq= >> uote>
> type=3D"cite">
> type=3D"cite">#14 0x0000000803780acf in _m3_fault (arg=3DInvalid C/C >> ++ = >> type code 39 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
> type=3D"cite">)
> blockquote>
> type=3D"cite">
>> from = >> /usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so.5
> blockquote>> lockquote>
> type=3D"cite">
#15 0x000000080377d1bc in >> Fork = >> (closure=3DInvalid C/C++ type code 26 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">#16 0x00000008011b1651 in AddAsset (t=3DInvalid C/C++ = >> type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktPlace.m3:116
> blockquote>> te type=3D"cite">
> type=3D"cite">#17 = >> 0x00000000004085c6 in Init (t=3DInvalid C/C++ type code 26 in = >>  
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/MktIsolator.m3:514
> blockquote>> quote type=3D"cite">
> type=3D"cite">#18 0x00000000004106af in Main (mode=3DInvalid C/C++ >> type = >> code 39 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/Main.m3:734
> blockquote>
> type=3D"cite">
> type=3D"cite">#19 = >> 0x0000000803767c19 in RunMainBody (m=3DInvalid C/C++ type code 29 = >>  
> type=3D"cite">
> type=3D"cite">in = >> symbol table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:400
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#20 0x0000000803766e00 in AddUnitI (m=3DInvalid C/C++ >> type = >> code 29 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:114
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">#21 0x0000000803766e9e in AddUnit (b=3DInvalid C/C++ >> type = >> code 31 in  
> blockquote>
> type=3D"cite">
> type=3D"cite">symbol = >> table.
> type=3D"cite">
) >> at = >> ../src/runtime/common/RTLinker.m3:123
> blockquote>> quote>
> type=3D"cite">
> type=3D"cite">---Type <return> to continue, or q >> <return> to = >> quit---
> type=3D"cite">
> type=3D"cite">#22 = >> 0x0000000000404194 in main (argc=3D44, argv=3D0x7fffffffdde8, = >>  
> type=3D"cite">
> type=3D"cite">envp=3D0x7fffffffdf50) at = >> _m3main.mc:4
> type=3D"cite">
> type=3D"cite">#23 = >> 0x00000000004040de in _start = >> ()
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> up 15
> type=3D"cite">
> type=3D"cite">#15 = >> 0x000000080377d1bc in Fork = >> (closure=3D16_00000008064c8930)
> blockquote>= >>
> type=3D"cite">  at = >> ../src/thread/PTHREAD/ThreadPThread.m3:589
> blockquote>> blockquote>
> type=3D"cite">> type=3D"cite">589 >>         WITH = >> r =3D pthread_mutex_lock_active() DO <*ASSERT r=3D0*> = >>  
> type=3D"cite">
> type=3D"cite">END;
> blockquote>
> type=3D"cite">
> type=3D"cite">Current = >> language:  auto; currently = >> Modula-3
> type=3D"cite">
> type=3D"cite">(m3gdb) = >> print r
> type=3D"cite">
>> $1 =3D = >> 11
> type=3D"cite">
> type=3D"cite">(m3gdb)
> blockquote>> e type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type >> = >> 3D >> "cite">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> = >> 3D >> = >> 3D >> = >> 3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> blockquote= >>>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-21--467118296
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; ">Which >> pthread = >> library are you =3D
> type=3D"cite">linking = >> to?<br><div apple-content-edited=3D3D"true"> <span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; color: = >> =3D
rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: =3D
> blockquote>
> type=3D"cite">normal; font-variant: normal; font-weight: normal; = >> letter-spacing: =3D
> type=3D"cite">normal; = >> line-height: normal; orphans: 2; text-align: auto; text-indent: = >> =3D
0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: = >> =3D
0px; = >> -webkit-border-horizontal-spacing: 0px; =3D
> blockquote>
> type=3D"cite">-webkit-border-vertical-spacing: 0px; = >> =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 12:15, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><div><br>More details >> about = >> the "catatonic" case. =3D
> type=3D"cite">&nbsp;It's pretty bad. &nbsp;Even = >> ctrl-\<br>won't wake it up properly. =3D
> blockquote>> type=3D"cite">&nbsp;Ctrl-\ is supposed to cause the program = >> to<br>abort and dump core. =3D
> type=3D"cite">&nbsp;It does nothing to my program now! >> &nbsp;And = >> I think<br>I've "lost =3D
> type=3D"cite">threads" before, = >> too.<br><br>Btw,<br><br>(90)ginger:~/ >> t&gt;unam= >> e =3D
-a<br>FreeBSD = >> ginger 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May &nbsp;1 = >> =3D
07:18:07 UTC 2009 = >> &nbsp;&nbsp;&nbsp;&nbsp;<a = >> =3D
href=3D3D"> href=3D"mailto:root at driscoll.cse.buffalo.edu">mailto:root at driscoll.cse.buf= >> falo.edu">> href=3D"mailto:root at driscoll.cse.buffalo.ed">root at driscoll.cse.buffalo.ed >> <= >> /a>=3D
> type=3D"cite">u</a>:/usr/obj/usr/src/sys/GENERIC = >> &nbsp;amd64<br><br>I'm happy to help = >> =3D
debug if someone can >> give = >> me some pointers...<br><br><br> = >> =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;&nbsp;Mika<br><br= >> >^\<br>Program received signal =3D
> blockquote>
> type=3D"cite">SIGQUIT, Quit.<br>0x0000000804ca037c in >> sigsuspend = >> () from =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) = >> cont >> <br>Continuing.<br><br><br>***<br>*** = >> =3D
runtime = >> error:<br>*** =3D
> type >> = >> 3D >> "cite">&nbsp;&nbsp;&nbsp;aborted<br><br><= >> ;br><br><br>^\<br>Program received = >> =3D
signal SIGQUIT, = >> Quit.<br>0x0000000804ca037c in sigsuspend () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) where<br>#0 = >> &nbsp;0x0000000804ca037c in =3D
> type=3D"cite">sigsuspend () from /lib/libc.so.7<br>#1 = >> &nbsp;0x0000000804b41d0a in =3D
> type=3D"cite">sigsuspend () from /lib/libthr.so.3<br>#2 = >> &nbsp;0x0000000803780da0 in =3D
> type=3D"cite">ThreadPThread__sigsuspend ()<br> = >> &nbsp;&nbsp;&nbsp;at =3D
> type=3D"cite">../src/thread/PTHREAD/ThreadPThreadC.c: >> 117<br>#3 = >> =3D
&nbsp; >> 0x000000080377ff6f= >> in SignalHandler (sig=3D3DInvalid C/C++ type code = >> =3D
28 in symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:1261<br>#4 = >> &nbsp;&lt;signal =3D
> type=3D"cite">handler called&gt;<br>#5 = >> &nbsp;0x0000000804b4829c in __error () from = >> =3D
/lib/libthr.so. >> 3<br>#6= >> &nbsp;0x0000000804b46365 in pthread_cond_signal = >> =3D
() from = >> /lib/libthr.so.3<br>#7 &nbsp;0x000000080377a85d in XWait = >> =3D
(self=3D3DInvalid C/C+ >> + = >> type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:227<br>#8 = >> =3D
&nbsp; >> 0x000000080377b026= >> in Wait (m=3D3DInvalid C/C++ type code 26 in = >> =3D
symbol >> table.<br>) = >> at ../src/thread/PTHREAD/ThreadPThread.m3:278<br>#9 = >> =3D
&nbsp; >> 0x000000080294a39c= >> in WaitE (on=3D3DInvalid C/C++ type code 30 in = >> =3D
symbol >> table.<br>) = >> at ../src/SX.m3:217<br>#10 0x000000080294999a in Wait = >> =3D
(on=3D3DInvalid C/C++ >> type = >> code 30 in symbol table.<br>) at =3D
> blockquote>
> type=3D"cite">../src/SX.m3:152<br>#11 0x00000008011ae748 in = >> WaitLocked (t=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktAsset.m3:117<br>#12 >> 0x00000008011b4950 in = >> RecApply (cl=3D3DInvalid=3D
> type=3D"cite">C/C++ type code 26 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/MktPlace.m3:469<br>#13 >> 0x000000080377cdf3 in = >> RunThread =3D
> type=3D"cite">(me=3D3DInvalid = >> C/C++ type code 29 in symbol table.<br>) at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:547<br>#14 = >> 0x000000080377ca6a in =3D
> type=3D"cite">ThreadBase (param=3D3DInvalid C/C++ type code 35 in >> symbol = >> table.<br>) at =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:523<br>#15 = >> 0x0000000804b3e4d1 in =3D
> type=3D"cite">pthread_getprio () from /lib/libthr.so.3<br>#16 = >> 0x0000000000000000 in ?? =3D
> type=3D"cite">()<br>(m3gdb) >> <br><br><br>Mika = >> Nystrom writes:<br><blockquote =3D
> blockquote>
> type=3D"cite">type=3D3D"cite">Hello = >> m3devel,<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">I'm running =3D
> type=3D"cite">into problems with the current release = >> =3D
> type=3D"cite">candidate.<br></blockquote><blockquote = >> type=3D3D"cite">I'm attaching a =3D
> type=3D"cite">backtrace from one crash, but I think I also am = >> =3D
> type=3D"cite">seeing<br></blockquote><blockquote = >> type=3D3D"cite">deadlocks in the =3D
> type=3D"cite">threading system---my application goes = >> =3D
> type=3D"cite">catatonic.<br></blockquote><blockquote = >> type=3D3D"cite">Of course it *is* =3D
> blockquote>
> type=3D"cite">possible it's a bug in my application, but it = >> =3D
> type=3D"cite">works<br></blockquote><blockquote = >> type=3D3D"cite">on PM3 and on CM3 on =3D
> blockquote>
> type=3D"cite">PPC_DARWIN.<br></ >> blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Finally I'm =3D
> type=3D"cite">still concerned about threading performance but in >> the = >> =3D
> type=3D"cite">light<br></blockquote><blockquote = >> type=3D3D"cite">of the bugs it's hard to = >> =3D
say much about it >> yet, I = >> think...<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">(The program in =3D
> blockquote>
> type=3D"cite">question is a highly multithreaded stock = >> =3D
> type=3D"cite">market<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">simulator.)<br></ >> blockquote>&= >> lt;blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite"> =3D
> type=3D"cite">&nbsp;&nbsp;&nbsp;Mika<br></ >> blockquote&= >> gt;<blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote type=3D3D"cite">*** runtime =3D
> blockquote>
> type=3D"cite">error:<br></blockquote><blockquote = >> type=3D3D"cite">*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">*** = >> &nbsp;&nbsp;&nbsp;file =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">589<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">***<br></ >> blockquote><block= >> quote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Program =3D
> type=3D"cite">received signal SIGABRT, = >> Aborted.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) show =3D
> type=3D"cite">args<br></blockquote><blockquote = >> type=3D3D"cite">Argument list to give =3D
> blockquote>
> type=3D"cite">program being debugged when it is started is = >> "@M3debugtrace=3D3Dmktsim.out =3D
> type=3D"cite">-tz America/New_York -bugbehavior None -symbology ric = >> -symbology =3D
> type=3D"cite">tws<br></blockquote><blockquote = >> type=3D3D"cite">-replay =3D
> type=3D"cite">mktisolator090910.ticks 2009-09-10 at 13:30 -to = >> 2009-09-10 at 15:59 -port 7001 =3D
> type=3D"cite">-dp 0.05 7003 -dp 0.10 7005 -dp 0.15 7007 -dp 0.20 >> 7009 = >> -dp 0.25 7011 =3D
-dp >> 0.30 = >> <br></blockquote><blockquote type=3D3D"cite">7013 = >> -sync 60 =3D
- >> unsolicitedfills = >> 0.5 -cp 0.5 -xtimeport 7200 =3D
> type=3D"cite">isolate90.src".<br></ >> blockquote><blockquote = >> type=3D3D"cite">(m3gdb) =3D
> type=3D"cite">where<br></blockquote><blockquote = >> type=3D3D"cite">#0 =3D
> type=3D"cite">&nbsp;0x0000000804c9fa9c in thr_kill () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#1 =3D
> type=3D"cite">&nbsp;0x0000000804d2ef8b in abort () from = >> =3D
> type=3D"cite">/lib/libc.so.7<br></ >> blockquote><blockquote = >> type=3D3D"cite">#2 =3D
> type=3D"cite">&nbsp;0x0000000803777bf7 in Crash () at = >> =3D
> type=3D"cite">../src/runtime/POSIX/RTOS.m3:20<br></ >> blockquote>= >> <blockquote =3D
> type=3D"cite">type=3D3D"cite">#3 &nbsp;0x000000080376b615 in = >> Crash (msg=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTProcess.m3:65<br></ >> blockquote><bloc= >> kquote =3D
> type=3D"cite">type=3D3D"cite">#4= >> &nbsp;0x0000000803768ab2 in EndError (crash=3D3DInvalid = >> =3D
C/C++ type code 36 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTError.m3:118<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#5 &nbsp;0x00000008037687aa in >> MsgS = >> (file=3D3DInvalid C/C++ =3D
> type=3D"cite">type= >> code 35 in symbol table.<br></blockquote><blockquote = >> type=3D3D"cite">) =3D
> type=3D"cite">at = >> ../src/runtime/common/RTError.m3:40<br></ >> blockquote><blockq= >> uote =3D
> type=3D"cite">type=3D3D"cite">#6 = >> &nbsp;0x0000000803768f85 in Crash (a=3D3DInvalid C/C++ = >> =3D
type code 30 in >> symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/common/RTException.m3:79<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">= >> #7 &nbsp;0x0000000803768c3c in DefaultBackstop (a=3D3DInvalid = >> =3D
C/C++ type code 30 in = >> symbol table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:39<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#8 &nbsp;0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#9 &nbsp;0x0000000803778eab in = >> Raise (act=3D3DInvalid C/C++ =3D
> type=3D"cite">type code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> =3D
at = >> ../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockquote><bl= >> ockquote =3D
> type=3D"cite">type=3D3D"cite">#10 0x0000000803768cee in = >> DefaultBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:47<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#11 0x0000000803768b6e in = >> InvokeBackstop (a=3D3DInvalid =3D
> type=3D"cite">C/C++ type code 30 in symbol = >> table.<br></blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTException.m3:25<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#12 0x0000000803778eab in Raise = >> (act=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 30 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/ex_frame/RTExFrame.m3:29<br></ >> blockq= >> uote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#13 0x0000000803750241 in >> ReportFault = >> (module=3D3DInvalid =3D
C/ >> C++ = >> type code 35 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/runtime/common/RTHooks.m3:110<br></ >> blockquot= >> e><blockquote =3D
> type=3D"cite">type=3D3D"cite">#14 0x0000000803780acf in >> _m3_fault = >> (arg=3D3DInvalid C/C++ =3D
> type=3D"cite">type = >> code 39 in symbol table.<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite">)<br></ >> blockquote><blockqu= >> ote type=3D3D"cite"> &nbsp;from =3D
> blockquote>
> type=3D"cite">/usr/local/cm3/pkg/m3core/AMD64_FREEBSD/libm3core.so. >> 5<br= >> ></blockquote><bl=3D
> type=3D"cite">ockquote type=3D3D"cite">#15 0x000000080377d1bc in >> Fork = >> (closure=3D3DInvalid =3D
> type=3D"cite">C/C++ = >> type code 26 in symbol table.<br></ >> blockquote><blockquote = >> =3D
type=3D3D"cite">) >> at = >> =3D
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">#16 0x00000008011b1651 in AddAsset = >> (t=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 26 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/MktPlace.m3:116<br></ >> blockquote><block= >> quote type=3D3D"cite">#17 =3D
> type=3D"cite">0x00000000004085c6 in Init (t=3D3DInvalid C/C++ type >> code = >> 26 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/MktIsolator.m3:514<br></ >> blockquote><bl= >> ockquote type=3D3D"cite">#18 =3D
> type=3D"cite">0x00000000004106af in Main (mode=3D3DInvalid C/C++ >> type = >> code 39 in symbol =3D
> type=3D"cite">table.<br></blockquote><blockquote = >> type=3D3D"cite">) at =3D
> type=3D"cite">../src/Main.m3:734<br></ >> blockquote><blockquot= >> e type=3D3D"cite">#19 =3D
> type=3D"cite">0x0000000803767c19 in RunMainBody (m=3D3DInvalid C/C+ >> + = >> type code 29 in =3D
> type=3D"cite">symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:400<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#20 0x0000000803766e00 in AddUnitI = >> (m=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 29 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:114<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">#21 0x0000000803766e9e in AddUnit = >> (b=3D3DInvalid C/C++ type =3D
> type=3D"cite">code 31 in symbol = >> table.<br></blockquote><blockquote >> type=3D3D"cite">) = >> at =3D
> type=3D"cite">../src/runtime/common/RTLinker.m3:123<br></ >> blockquo= >> te><blockquote =3D
> type=3D"cite">type=3D3D"cite">---Type &lt;return&gt; to = >> continue, or q &lt;return&gt; to =3D
> blockquote>
> type=3D"cite">quit---<br></blockquote><blockquote = >> type=3D3D"cite">#22 0x0000000000404194 =3D
> blockquote>
> type=3D"cite">in main (argc=3D3D44, argv=3D3D0x7fffffffdde8, = >> envp=3D3D0x7fffffffdf50) at =3D
> type=3D"cite">_m3main.mc:4<br></ >> blockquote><blockquote = >> type=3D3D"cite">#23 =3D
> type=3D"cite">0x00000000004040de in _start = >> ()<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> up 15<br></blockquote><blockquote >> type=3D3D"cite">#15 = >> =3D
0x000000080377d1bc in >> Fork = >> =3D
> type=3D"cite">(closure=3D3D16_00000008064c8930)<br></ >> blockquote&g= >> t;<blockquote type=3D3D"cite">=3D
> type=3D"cite">&nbsp;&nbsp;at =3D
> blockquote>
> type=3D"cite">../src/thread/PTHREAD/ >> ThreadPThread.m3:589<br></blo= >> ckquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">589 = >> & >> ;nbsp >> ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&= >> ;nbsp;WITH r =3D
=3D3D = >> pthread_mutex_lock_active() DO &lt;*ASSERT r=3D3D0*&gt; = >> =3D
> type=3D"cite">END;<br></blockquote><blockquote = >> type=3D3D"cite">Current language: =3D
> blockquote>
> type=3D"cite">&nbsp;auto; currently = >> Modula-3<br></blockquote><blockquote = >> =3D
type=3D3D"cite"> >> (m3gdb) = >> print r<br></blockquote><blockquote = >> type=3D3D"cite">$1=3D
> type=3D"cite">=3D3D = >> 11<br></blockquote><blockquote type=3D3D"cite"> >> (m3gdb) = >> =3D
> type=3D"cite"><br></blockquote><blockquote = >> type=3D3D"cite"><br></blockquote><blockquote = >> =3D
> type >> = >> 3D >> "cite >> ">type=3D3D"cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D= >> 3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquo= >> te>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> = >> 3D3D >> = >> 3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D
> blockquote>
> type >> = >> 3D >> "cite">=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D=3D3D= >> =3D3D=3D3D=3D3D<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite"><br></blockquote></ >> div>= >> </blockquote></div><br></body></ >> html>=3D
= >>

> type=3D"cite">--Apple-Mail-21--467118296--
> blockqu= >> ote>

= >> >> --Apple-Mail-24--465395183-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:10:11 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:10:11 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> Message-ID: <20091031191011.63E701A2097@async.async.caltech.edu> Haha, this is cool! I've never seen a program fail TWO assertions! (-lthr) WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) initialized, will not attempt executions against it. WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 *** *** *** runtime error: *** <*ASSERT*> failed. *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 *** Program received signal SIGABRT, Aborted. 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 (m3gdb) Tony Hosking writes: > >--Apple-Mail-27--464514552 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Can you try linking with -lthr? From hosking at cs.purdue.edu Sat Oct 31 20:15:20 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:15:20 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031191011.63E701A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> Message-ID: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Any idea what the return code is for line 589? On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > Haha, this is cool! I've never seen a program fail TWO assertions! > (-lthr) > > WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) > initialized, will not attempt executions against it. > WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 > *** > > > > *** > *** runtime error: > *** <*ASSERT*> failed. > *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 > *** > > > Program received signal SIGABRT, Aborted. > 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 > (m3gdb) > Tony Hosking writes: >> >> --Apple-Mail-27--464514552 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Can you try linking with -lthr? -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 20:23:34 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 12:23:34 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> Message-ID: <20091031192335.050261A207D@async.async.caltech.edu> It's 11. How can I switch between threads in (m3)gdb? Tony Hosking writes: > >--Apple-Mail-30--463553748 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >Any idea what the return code is for line 589? > >On 31 Oct 2009, at 15:10, Mika Nystrom wrote: > >> Haha, this is cool! I've never seen a program fail TWO assertions! >> (-lthr) >> >> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >> initialized, will not attempt executions against it. >> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >> *** >> >> >> >> *** >> *** runtime error: >> *** <*ASSERT*> failed. >> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >> *** >> >> >> Program received signal SIGABRT, Aborted. >> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >> (m3gdb) >> Tony Hosking writes: >>> >>> --Apple-Mail-27--464514552 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Can you try linking with -lthr? > > >--Apple-Mail-30--463553748 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">
apple-content-edited=3D"true">style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill Sans'">Any = >idea what the return code is for line 589?
class=3D"Apple-style-span" style=3D"font-size: medium;">class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >Sans'">
<= >/span>
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
Haha, = >this is cool!  I've never seen a program fail TWO assertions! = >(-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >(fully) initialized, will not attempt executions against it.
WARNING: = >TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD


***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
***



***
*** runtime error:
*** = >   <*ASSERT*> failed.
***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
***


Program received signal SIGABRT, = >Aborted.
0x0000000804c9fa9c in thr_kill () from = >/lib/libc.so.7
(m3gdb)
Tony Hosking writes:
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Can you try = >linking with = >-lthr?

= > >--Apple-Mail-30--463553748-- From hosking at cs.purdue.edu Sat Oct 31 20:45:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:45:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: threads all bt should give a backtrace of all threads. 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:09 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:09 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <0A73F2B1-8840-46C9-9F32-9503CE44AED8@cs.purdue.edu> Sorry: thread apply all bt 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From hosking at cs.purdue.edu Sat Oct 31 20:46:33 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 15:46:33 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031192335.050261A207D@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> What does RC=11 correspond to in errno? 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > It's 11. How can I switch between threads in (m3)gdb? > > Tony Hosking writes: >> >> --Apple-Mail-30--463553748 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> Any idea what the return code is for line 589? >> >> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >> >>> Haha, this is cool! I've never seen a program fail TWO assertions! >>> (-lthr) >>> >>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>> initialized, will not attempt executions against it. >>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>> *** >>> >>> >>> >>> *** >>> *** runtime error: >>> *** <*ASSERT*> failed. >>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>> *** >>> >>> >>> Program received signal SIGABRT, Aborted. >>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>> (m3gdb) >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-27--464514552 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Can you try linking with -lthr? >> >> >> --Apple-Mail-30--463553748 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">
> apple-content-edited=3D"true">> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >> Sans'">Any = >> idea what the return code is for line 589?> div>
> class=3D"Apple-style-span" style=3D"font-size: medium;">> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >> Sans'">
> span><= >> /span>
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
Haha, = >> this is cool!  I've never seen a program fail TWO assertions! = >> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >> (fully) initialized, will not attempt executions against >> it.
WARNING: = >> TWSReplayer.ReqMktData: Couldnt find data for = >> CEPH:TSE:CAD


***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
***



***
*** runtime error:
*** = >>    <*ASSERT*> failed.
*** >>    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
***


Program received signal SIGABRT, = >> Aborted.
0x0000000804c9fa9c in thr_kill () from = >> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Can you >> try = >> linking with = >> -lthr?

= >> >> --Apple-Mail-30--463553748-- -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:06:23 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:06:23 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> Message-ID: <20091031200623.C0BC71A2097@async.async.caltech.edu> With the RC m3gdb it either segfaults gdb or: (m3gdb) threads Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all Can't find Modula-3 identifier: ThreadPosix (m3gdb) threads all bt Can't find Modula-3 identifier: ThreadPosix (m3gdb) Tony Hosking writes: > >--Apple-Mail-33--461716527 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >threads all bt > >should give a backtrace of all threads. > From mika at async.async.caltech.edu Sat Oct 31 21:08:10 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:08:10 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> Message-ID: <20091031200810.AF0821A2097@async.async.caltech.edu> #define ECHILD 10 /* No child processes */ #define EDEADLK 11 /* Resource deadlock avoided */ /* 11 was EAGAIN */ #define ENOMEM 12 /* Cannot allocate memory */ Tony Hosking writes: > >--Apple-Mail-35--461680347 >Content-Type: text/plain; > charset=US-ASCII; > format=flowed; > delsp=yes >Content-Transfer-Encoding: 7bit > >What does RC=11 correspond to in errno? > >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 31 Oct 2009, at 15:23, Mika Nystrom wrote: > >> It's 11. How can I switch between threads in (m3)gdb? >> >> Tony Hosking writes: >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/plain; >>> charset=US-ASCII; >>> format=flowed; >>> delsp=yes >>> Content-Transfer-Encoding: 7bit >>> >>> Any idea what the return code is for line 589? >>> >>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>> >>>> Haha, this is cool! I've never seen a program fail TWO assertions! >>>> (-lthr) >>>> >>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>> initialized, will not attempt executions against it. >>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for CEPH:TSE:CAD >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>> *** >>>> >>>> >>>> >>>> *** >>>> *** runtime error: >>>> *** <*ASSERT*> failed. >>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>> *** >>>> >>>> >>>> Program received signal SIGABRT, Aborted. >>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>> (m3gdb) >>>> Tony Hosking writes: >>>>> >>>>> --Apple-Mail-27--464514552 >>>>> Content-Type: text/plain; >>>>> charset=US-ASCII; >>>>> format=flowed; >>>>> delsp=yes >>>>> Content-Transfer-Encoding: 7bit >>>>> >>>>> Can you try linking with -lthr? >>> >>> >>> --Apple-Mail-30--463553748 >>> Content-Type: text/html; >>> charset=US-ASCII >>> Content-Transfer-Encoding: quoted-printable >>> >>> >> space; = >>> -webkit-line-break: after-white-space; ">
>> apple-content-edited=3D"true">>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>> family: = >>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>> normal; = >>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>> none; = >>> white-space: normal; widows: 2; word-spacing: 0px; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>> adjust: = >>> auto; -webkit-text-stroke-width: 0; ">
>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>> after-white-space; ">>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">
>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>> -webkit-line-break: after-white-space; ">>> span" = >>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>> spacing: = >>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>> font-variant: normal; font-weight: normal; letter-spacing: normal; = >>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>> none; = >>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>> ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>> spacing: = >>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >>> font-style: normal; font-variant: normal; font-weight: normal; = >>> letter-spacing: normal; line-height: normal; = >>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>> white-space: normal; widows: 2; word-spacing: 0px; ">
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>> Sans'">Any = >>> idea what the return code is for line 589?>> div>
>> class=3D"Apple-style-span" style=3D"font-size: medium;">>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>> Sans'">
>> span><= >>> /span>
On 31 Oct >>> 2009, = >>> at 15:10, Mika Nystrom wrote:

>> class=3D"Apple-interchange-newline">
>> type=3D"cite">
Haha, = >>> this is cool!  I've never seen a program fail TWO assertions! = >>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>> (fully) initialized, will not attempt executions against >>> it.
WARNING: = >>> TWSReplayer.ReqMktData: Couldnt find data for = >>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 589
***



***
*** runtime error:
*** = >>>    <*ASSERT*> failed.
*** >>>    file = >>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>> 917
***


Program received signal SIGABRT, = >>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>> type=3D"cite">
>> type=3D"cite">--Apple-Mail-27--464514552
>> blockquote>
>> type=3D"cite">Content-Type: text/plain;
>> type=3D"cite">>> space:pre"> = >>> charset=3DUS-ASCII;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> format=3Dflowed;
>> type=3D"cite">>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>> delsp=3Dyes
>> type=3D"cite">Content-Transfer-Encoding: = >>> 7bit
>> type=3D"cite">
Can you >>> try = >>> linking with = >>> -lthr?

= >>> >>> --Apple-Mail-30--463553748-- > > >--Apple-Mail-35--461680347 >Content-Type: text/html; > charset=US-ASCII >Content-Transfer-Encoding: quoted-printable > >-webkit-line-break: after-white-space; ">What does RC=3D11 correspond to = >in errno?

style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: = >Helvetica; font-size: 12px; font-style: normal; font-variant: normal; = >font-weight: normal; letter-spacing: normal; line-height: normal; = >orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; = >white-space: normal; widows: 2; word-spacing: 0px; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: = >auto; -webkit-text-stroke-width: 0; ">
break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >-webkit-line-break: after-white-space; ">style=3D"border-collapse: separate; -webkit-border-horizontal-spacing: = >0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >font-family: Helvetica; font-size: 12px; font-style: normal; = >font-variant: normal; font-weight: normal; letter-spacing: normal; = >line-height: normal; -webkit-text-decorations-in-effect: none; = >text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">class=3D"Apple-style-span" style=3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: = >0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >font-style: normal; font-variant: normal; font-weight: normal; = >letter-spacing: normal; line-height: normal; = >-webkit-text-decorations-in-effect: none; text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >white-space: normal; widows: 2; word-spacing: 0px; ">
class=3D"Apple-style-span" color=3D"#0000FF">class=3D"Apple-style-span" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Antony = >Hoskingface=3D"Gill Sans">'Gill Sans'; ">'Gill Sans'; "> |class=3D"Apple-converted-space"> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; ">class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >">Associate Professorstyle=3D"font-family: 'Gill Sans'; ">style=3D"font-family: 'Gill Sans'; "> | Computer Science | Purdue = >University
face=3D"GillSans-Light">style=3D"font-family: GillSans-Light; ">305 N. University Street | West = >Lafayette | IN 47907 | USA
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Officeclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >"> +1 765 494 6001 |class=3D"Apple-converted-space"> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans">class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font-family: = >'Gill Sans'; ">0, 255); font-family: 'Gill Sans'; ">Mobileclass=3D"Apple-style-span" face=3D"GillSans-Light">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; ">class=3D"Apple-converted-space"> +1 765 427 = >5484
face=3D"GillSans-Light">
class=3D"khtml-block-placeholder">
>

class=3D"Apple-interchange-newline">

class=3D"Apple-interchange-newline">

On 31 Oct 2009, = >at 15:23, Mika Nystrom wrote:

class=3D"Apple-interchange-newline">
It's = >11.  How can I switch between threads in (m3)gdb?

Tony = >Hosking writes:

type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/plain;
type=3D"cite"> = >charset=3DUS-ASCII;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >format=3Dflowed;
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >delsp=3Dyes
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
Any idea what = >the return code is for line 589?
type=3D"cite">
On 31 Oct 2009, = >at 15:10, Mika Nystrom wrote:
type=3D"cite">
type=3D"cite">Haha, this is cool!  I've never seen a program fail = >TWO assertions!  
type=3D"cite">
type=3D"cite">(-lthr)
type=3D"cite">
type=3D"cite">
type=3D"cite">
WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet (fully) = > 
type=3D"cite">initialized, will not attempt executions against = >it.
type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data for = >CEPH:TSE:CAD
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >589
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">***
type=3D"cite">
*** runtime = >error:
type=3D"cite">***    <*ASSERT*> = >failed.
type=3D"cite">***    file = >"../src/thread/PTHREAD/ThreadPThread.m3", line = >917
type=3D"cite">***
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">
Program received signal SIGABRT, = >Aborted.
type=3D"cite">
0x0000000804c9fa9c in thr_kill = >() from /lib/libc.so.7
type=3D"cite">
type=3D"cite">(m3gdb)
type=3D"cite">
Tony Hosking = >writes:
type=3D"cite">
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-27--464514552
ockquote>
type=3D"cite">Content-Type: = >text/plain;
type=3D"cite">
class=3D"Apple-tab-span" style=3D"white-space:pre"> = >charset=3DUS-ASCII;
kquote type=3D"cite">
type=3D"cite"> = >format=3Dflowed;
ote type=3D"cite">
type=3D"cite"> = >delsp=3Dyes
type=3D"cite">
type=3D"cite">Content-Transfer-Encoding: = >7bit
type=3D"cite">
type=3D"cite">
type=3D"cite">
Can = >you try linking with = >-lthr?
type=3D"cite">
type=3D"cite">
type=3D"cite">--Apple-Mail-30--463553748
type=3D"cite">Content-Type: text/html;
type=3D"cite"> = >charset=3DUS-ASCII
type=3D"cite">Content-Transfer-Encoding: = >quoted-printable
type=3D"cite">
type=3D"cite"><html><body style=3D3D"word-wrap: break-word; = >-webkit-nbsp-mode: space; =3D
type=3D"cite">-webkit-line-break: after-white-space; "><div = >=3D
type=3D"cite">apple-content-edited=3D3D"true"><span = >class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, 0, 0); = >font-family: =3D
Helvetica; = >font-size: 12px; font-style: normal; font-variant: normal; = >=3D
font-weight: normal; = >letter-spacing: normal; line-height: normal; = >=3D
orphans: 2; text-align: = >auto; text-indent: 0px; text-transform: none; = >=3D
white-space: normal; = >widows: 2; word-spacing: 0px; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >-webkit-text-size-adjust: =3D
type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >style=3D3D"word-wrap: =3D
type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >=3D
after-white-space; = >"><span class=3D3D"Apple-style-span" =3D
type=3D"cite">style=3D3D"border-collapse: separate; = >-webkit-border-horizontal-spacing: =3D
type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, = >0, 0); =3D
font-family: = >Helvetica; font-size: 12px; font-style: normal; = >=3D
font-variant: normal; = >font-weight: normal; letter-spacing: normal; = >=3D
line-height: normal; = >-webkit-text-decorations-in-effect: none; =3D
type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >text-transform: none; =3D
type=3D"cite">orphans: 2; white-space: normal; widows: 2; word-spacing: = >0px; "><div =3D
type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >space; =3D
-webkit-line-break: = >after-white-space; "><span class=3D3D"Apple-style-span" = >=3D
style=3D3D"border-collapse: = >separate; -webkit-border-horizontal-spacing: = >=3D
0px; = >-webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >=3D
font-family: Helvetica; = >font-size: 12px; font-style: normal; =3D
type=3D"cite">font-variant: normal; font-weight: normal; letter-spacing: = >normal; =3D
line-height: = >normal; -webkit-text-decorations-in-effect: none; = >=3D
text-indent: 0px; = >-webkit-text-size-adjust: auto; text-transform: none; = >=3D
orphans: 2; white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"border-collapse: separate; =3D
type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >-webkit-border-vertical-spacing: =3D
type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >font-size: 12px; =3D
font-style:= > normal; font-variant: normal; font-weight: normal; = >=3D
letter-spacing: normal; = >line-height: normal; =3D
type=3D"cite">-webkit-text-decorations-in-effect: none; text-indent: = >0px; =3D
type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >orphans: 2; =3D
white-space: = >normal; widows: 2; word-spacing: 0px; "><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >=3D
idea what the return code = >is for line = >589?</font></span></div><div><span = >=3D
class=3D3D"Apple-style-span"= > style=3D3D"font-size: medium;"><font = >=3D
class=3D3D"Apple-style-span"= > color=3D3D"#0000FF" face=3D3D"'Gill =3D
type=3D"cite">Sans'"><br></font></span></div>&l= >t;/span></span></span></span></span></span&g= >t;<=3D
type=3D"cite">/span></span></div></span></div>&= >lt;/span></div><div><div>On 31 Oct 2009, = >=3D
at 15:10, Mika Nystrom = >wrote:</div><br =3D
type=3D"cite">class=3D3D"Apple-interchange-newline"><blockquote = >type=3D3D"cite"><div>Haha, =3D
type=3D"cite">this is cool! &nbsp;I've never seen a program fail TWO = >assertions! =3D
type=3D"cite">(-lthr)<br><br>WARNING: MktPlace.RecApply: = >asset CEPH:CAD not yet =3D
type=3D"cite">(fully) initialized, will not attempt executions against = >it.<br>WARNING: =3D
type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >=3D
type=3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">589<br>***<br><br><br><br>***&= >lt;br>*** runtime error:<br>*** =3D
type=3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >failed.<br>*** &nbsp;&nbsp;&nbsp;file = >=3D
type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >=3D
type=3D"cite">917<br>***<br><br><br>Program = >received signal SIGABRT, =3D
type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () from = >=3D
type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony Hosking = >writes:<br><blockquote =3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te =3D
type=3D"cite">type=3D3D"cite">--Apple-Mail-27--464514552<br></= >blockquote><blockquote =3D
type=3D"cite">type=3D3D"cite">Content-Type: = >text/plain;<br></blockquote><blockquote = >=3D
type=3D3D"cite"><span = >class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">class=3D"Apple-tab-span" style=3D"white-space:pre"> = >=3D
type=3D"cite"></span>charset=3D3DUS-ASCII;<br></blockquote&= >gt;<blockquote type=3D3D"cite"><span=3D
te type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>format=3D3Dflowed;<br></blockquote>= ><blockquote type=3D3D"cite"><span =3D
type=3D"cite">class=3D3D"Apple-tab-span" = >style=3D3D"white-space:pre">style=3D"white-space:pre"> =3D
type=3D"cite"></span>delsp=3D3Dyes<br></blockquote><b= >lockquote =3D
type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >=3D
type=3D"cite">7bit<br></blockquote><blockquote = >=3D
type=3D"cite">type=3D3D"cite"><br></blockquote><blockquo= >te type=3D3D"cite">Can you try =3D
type=3D"cite">linking with =3D
type=3D"cite">-lthr?<br></blockquote></div></blockquo= >te></div><br></body></html>=3D
= >

type=3D"cite">--Apple-Mail-30--463553748--
ote>

= > >--Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:12 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:12 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200810.AF0821A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> Message-ID: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Deadlock is not possible in this instance. No other locks should be held. I notice that it used to be EAGAIN: does that imply we should be retrying the lock here? Did you confirm linking with -lthr? On 31 Oct 2009, at 16:08, Mika Nystrom wrote: > #define ECHILD 10 /* No child processes */ > #define EDEADLK 11 /* Resource deadlock avoided > */ > /* 11 was EAGAIN */ > #define ENOMEM 12 /* Cannot allocate memory */ > > Tony Hosking writes: >> >> --Apple-Mail-35--461680347 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> What does RC=11 correspond to in errno? >> >> 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 31 Oct 2009, at 15:23, Mika Nystrom wrote: >> >>> It's 11. How can I switch between threads in (m3)gdb? >>> >>> Tony Hosking writes: >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/plain; >>>> charset=US-ASCII; >>>> format=flowed; >>>> delsp=yes >>>> Content-Transfer-Encoding: 7bit >>>> >>>> Any idea what the return code is for line 589? >>>> >>>> On 31 Oct 2009, at 15:10, Mika Nystrom wrote: >>>> >>>>> Haha, this is cool! I've never seen a program fail TWO >>>>> assertions! >>>>> (-lthr) >>>>> >>>>> WARNING: MktPlace.RecApply: asset CEPH:CAD not yet (fully) >>>>> initialized, will not attempt executions against it. >>>>> WARNING: TWSReplayer.ReqMktData: Couldnt find data for >>>>> CEPH:TSE:CAD >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 589 >>>>> *** >>>>> >>>>> >>>>> >>>>> *** >>>>> *** runtime error: >>>>> *** <*ASSERT*> failed. >>>>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 917 >>>>> *** >>>>> >>>>> >>>>> Program received signal SIGABRT, Aborted. >>>>> 0x0000000804c9fa9c in thr_kill () from /lib/libc.so.7 >>>>> (m3gdb) >>>>> Tony Hosking writes: >>>>>> >>>>>> --Apple-Mail-27--464514552 >>>>>> Content-Type: text/plain; >>>>>> charset=US-ASCII; >>>>>> format=flowed; >>>>>> delsp=yes >>>>>> Content-Transfer-Encoding: 7bit >>>>>> >>>>>> Can you try linking with -lthr? >>>> >>>> >>>> --Apple-Mail-30--463553748 >>>> Content-Type: text/html; >>>> charset=US-ASCII >>>> Content-Transfer-Encoding: quoted-printable >>>> >>>> >>> space; = >>>> -webkit-line-break: after-white-space; ">
>>> apple-content-edited=3D"true">>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >>>> family: = >>>> Helvetica; font-size: 12px; font-style: normal; font-variant: >>>> normal; = >>>> font-weight: normal; letter-spacing: normal; line-height: normal; = >>>> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >>>> none; = >>>> white-space: normal; widows: 2; word-spacing: 0px; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >>>> adjust: = >>>> auto; -webkit-text-stroke-width: 0; ">
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >>>> after-white-space; ">>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >>>> -webkit-line-break: after-white-space; ">>>> style- >>>> span" = >>>> style=3D"border-collapse: separate; -webkit-border-horizontal- >>>> spacing: = >>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >>>> font-family: Helvetica; font-size: 12px; font-style: normal; = >>>> font-variant: normal; font-weight: normal; letter-spacing: >>>> normal; = >>>> line-height: normal; -webkit-text-decorations-in-effect: none; = >>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >>>> none; = >>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >>>> ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >>>> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >>>> spacing: = >>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: >>>> 12px; = >>>> font-style: normal; font-variant: normal; font-weight: normal; = >>>> letter-spacing: normal; line-height: normal; = >>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >>>> white-space: normal; widows: 2; word-spacing: 0px; ">
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill >>>> Sans'">Any = >>>> idea what the return code is for line 589?>>> div>
>>> class=3D"Apple-style-span" style=3D"font-size: medium;">>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"'Gill = >>>> Sans'">
>>> span>>>> span><= >>>> /span>
On 31 Oct >>>> 2009, = >>>> at 15:10, Mika Nystrom wrote:

>>> class=3D"Apple-interchange-newline">
>>> type=3D"cite">
Haha, = >>>> this is cool!  I've never seen a program fail TWO >>>> assertions! = >>>> (-lthr)

WARNING: MktPlace.RecApply: asset CEPH:CAD not yet = >>>> (fully) initialized, will not attempt executions against >>>> it.
WARNING: = >>>> TWSReplayer.ReqMktData: Couldnt find data for = >>>> CEPH:TSE:CAD


***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 589
***



***
*** runtime error:
*** = >>>>    <*ASSERT*> failed.
*** >>>>    file = >>>> "../src/thread/PTHREAD/ThreadPThread.m3", line = >>>> 917
***


Program received signal SIGABRT, = >>>> Aborted.
0x0000000804c9fa9c in thr_kill () from = >>>> /lib/libc.so.7
(m3gdb)
Tony Hosking writes:
>>> type=3D"cite">
>>> type=3D"cite">--Apple-Mail-27--464514552
>>> blockquote>
>>> type=3D"cite">Content-Type: text/plain;
>>> blockquote>
>>> type=3D"cite">>>> space:pre"> = >>>> charset=3DUS-ASCII;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> format=3Dflowed;
>>> type=3D"cite">>>> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >>>> delsp=3Dyes
>>> type=3D"cite">Content-Transfer-Encoding: = >>>> 7bit
>>> type=3D"cite">
Can you >>>> try = >>>> linking with = >>>> -lthr?

= >>>> >>>> --Apple-Mail-30--463553748-- >> >> >> --Apple-Mail-35--461680347 >> Content-Type: text/html; >> charset=US-ASCII >> Content-Transfer-Encoding: quoted-printable >> >> > space; = >> -webkit-line-break: after-white-space; ">What does RC=3D11 >> correspond to = >> in errno?

> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font- >> family: = >> Helvetica; font-size: 12px; font-style: normal; font-variant: >> normal; = >> font-weight: normal; letter-spacing: normal; line-height: normal; = >> orphans: 2; text-align: auto; text-indent: 0px; text-transform: >> none; = >> white-space: normal; widows: 2; word-spacing: 0px; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size- >> adjust: = >> auto; -webkit-text-stroke-width: 0; ">
> break-word; -webkit-nbsp-mode: space; -webkit-line-break: = >> after-white-space; ">> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">
> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = >> -webkit-line-break: after-white-space; ">> span" = >> style=3D"border-collapse: separate; -webkit-border-horizontal- >> spacing: = >> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> font-family: Helvetica; font-size: 12px; font-style: normal; = >> font-variant: normal; font-weight: normal; letter-spacing: normal; = >> line-height: normal; -webkit-text-decorations-in-effect: none; = >> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: >> none; = >> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; >> ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">> class=3D"Apple-style-span" style=3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical- >> spacing: = >> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; = >> font-style: normal; font-variant: normal; font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> -webkit-text-decorations-in-effect: none; text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; = >> white-space: normal; widows: 2; word-spacing: 0px; ">
> class=3D"Apple-style-span" color=3D"#0000FF">> class=3D"Apple-style-span" face=3D"Gill Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Antony = >> Hosking> face=3D"Gill Sans">> family: = >> 'Gill Sans'; ">> family: = >> 'Gill Sans'; "> | >> > class=3D"Apple-converted-space"> > class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; >> ">> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; = >> ">Associate Professor> style=3D"font-family: 'Gill Sans'; ">> span" = >> style=3D"font-family: 'Gill Sans'; "> | Computer Science | >> Purdue = >> University
> style-span"= >> face=3D"GillSans-Light">> style=3D"font-family: GillSans-Light; ">305 N. University Street | >> West = >> Lafayette | IN 47907 | USA
> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Office> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; = >> "> +1 765 494 6001 |> class=3D"Apple-converted-space"> > font>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill >> Sans">> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); font- >> family: = >> 'Gill Sans'; ">> rgb(0, = >> 0, 255); font-family: 'Gill Sans'; ">Mobile> font>> class=3D"Apple-style-span" face=3D"GillSans-Light">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; >> ">> class=3D"Apple-converted-space"> +1 765 427 = >> 5484
> span" = >> face=3D"GillSans-Light">
> class=3D"khtml-block-placeholder">
> span>>>

> class=3D"Apple-interchange-newline">
> span>
> class=3D"Apple-interchange-newline">

On 31 Oct >> 2009, = >> at 15:23, Mika Nystrom wrote:

> class=3D"Apple-interchange-newline">
> type=3D"cite">
It's = >> 11.  How can I switch between threads in (m3)gdb?

Tony = >> Hosking writes:

> blockquote>
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/plain;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> format=3Dflowed;
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> delsp=3Dyes
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
Any idea >> what = >> the return code is for line 589?
> type=3D"cite">
On 31 Oct >> 2009, = >> at 15:10, Mika Nystrom wrote:
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">Haha, this is cool!  I've never seen a program >> fail = >> TWO assertions!  
> type=3D"cite">
> type=3D"cite">(-lthr)
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
WARNING: MktPlace.RecApply: = >> asset CEPH:CAD not yet (fully) = >>  
> type=3D"cite">
> type=3D"cite">initialized, will not attempt executions against = >> it.
> type=3D"cite">
> type=3D"cite">WARNING: TWSReplayer.ReqMktData: Couldnt find data >> for = >> CEPH:TSE:CAD
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 589
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
*** runtime = >> error:
> type=3D"cite">
> type=3D"cite">***    <*ASSERT*> = >> failed.
> type=3D"cite">> type=3D"cite">***    file = >> "../src/thread/PTHREAD/ThreadPThread.m3", line = >> 917
> type=3D"cite">
> type=3D"cite">***
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">
Program received signal >> SIGABRT, = >> Aborted.
> type=3D"cite">
0x0000000804c9fa9c in >> thr_kill = >> () from /lib/libc.so.7
> type=3D"cite">
> type=3D"cite">(m3gdb)
> type=3D"cite">
Tony Hosking = >> writes:
> type=3D"cite">> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">--Apple-Mail-27--464514552
> blockquote>> ockquote>
> type=3D"cite">
> type=3D"cite">Content-Type: = >> text/plain;
> type=3D"cite">
> type=3D"cite">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> charset=3DUS-ASCII;
> blockquote>> kquote type=3D"cite">
> type=3D"cite">> space:pre"> = >> format=3Dflowed;
> blockquote>> ote type=3D"cite">
> type=3D"cite">> space:pre"> = >> delsp=3Dyes
> blockquote>
> type=3D"cite">
> type=3D"cite">Content-Transfer-Encoding: = >> 7bit
> type=3D"cite">
> type=3D"cite">
> blockquote>
> type=3D"cite">
> type=3D"cite">Can = >> you try linking with = >> -lthr?
> type=3D"cite">
> type=3D"cite">
> type=3D"cite">--Apple-Mail-30--463553748
> blockquote>
> type=3D"cite">Content-Type: text/html;
> type=3D"cite">> space:pre"> = >> charset=3DUS-ASCII
> type=3D"cite">Content-Transfer-Encoding: = >> quoted-printable
> type=3D"cite">
> type=3D"cite"><html><body style=3D3D"word-wrap: break- >> word; = >> -webkit-nbsp-mode: space; =3D
> type=3D"cite">-webkit-line-break: after-white-space; "><div = >> =3D
> type=3D"cite">apple-content-edited=3D3D"true"><span = >> class=3D3D"Apple-style-span" =3D
> type=3D"cite">style=3D3D"border-collapse: separate; color: rgb(0, >> 0, 0); = >> font-family: =3D
> type=3D"cite">Helvetica; = >> font-size: 12px; font-style: normal; font-variant: normal; = >> =3D
font-weight: normal; = >> letter-spacing: normal; line-height: normal; = >> =3D
orphans: 2; text- >> align: = >> auto; text-indent: 0px; text-transform: none; = >> =3D
white-space: normal; = >> widows: 2; word-spacing: 0px; =3D
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; -webkit-text-decorations-in-effect: none; = >> -webkit-text-size-adjust: =3D
> type=3D"cite">auto; -webkit-text-stroke-width: 0; "><div = >> style=3D3D"word-wrap: =3D
> type=3D"cite">break-word; -webkit-nbsp-mode: space; -webkit-line- >> break: = >> =3D
after-white-space; = >> "><span class=3D3D"Apple-style-span" =3D
> blockquote>> type=3D"cite">style=3D3D"border-collapse: separate; = >> -webkit-border-horizontal-spacing: =3D
> type=3D"cite">0px; -webkit-border-vertical-spacing: 0px; color: >> rgb(0, = >> 0, 0); =3D
font-family: = >> Helvetica; font-size: 12px; font-style: normal; = >> =3D
font-variant: normal; = >> font-weight: normal; letter-spacing: normal; = >> =3D
line-height: normal; = >> -webkit-text-decorations-in-effect: none; =3D
> blockquote>
> type=3D"cite">text-indent: 0px; -webkit-text-size-adjust: auto; = >> text-transform: none; =3D
> type=3D"cite">orphans: 2; white-space: normal; widows: 2; word- >> spacing: = >> 0px; "><div =3D
> type=3D"cite">style=3D3D"word-wrap: break-word; -webkit-nbsp-mode: = >> space; =3D
-webkit-line- >> break: = >> after-white-space; "><span class=3D3D"Apple-style-span" = >> =3D
style=3D3D"border- >> collapse: = >> separate; -webkit-border-horizontal-spacing: = >> =3D
0px; = >> -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); = >> =3D
font-family: >> Helvetica; = >> font-size: 12px; font-style: normal; =3D
> blockquote>
> type=3D"cite">font-variant: normal; font-weight: normal; letter- >> spacing: = >> normal; =3D
line-height: = >> normal; -webkit-text-decorations-in-effect: none; = >> =3D
text-indent: 0px; = >> -webkit-text-size-adjust: auto; text-transform: none; = >> =3D
orphans: 2; white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"border-collapse: separate; =3D
> blockquote>
> type=3D"cite">-webkit-border-horizontal-spacing: 0px; = >> -webkit-border-vertical-spacing: =3D
> type=3D"cite">0px; color: rgb(0, 0, 0); font-family: Helvetica; = >> font-size: 12px; =3D
font- >> style:= >> normal; font-variant: normal; font-weight: normal; = >> =3D
letter-spacing: >> normal; = >> line-height: normal; =3D
> type=3D"cite">-webkit-text-decorations-in-effect: none; text- >> indent: = >> 0px; =3D
> type=3D"cite">-webkit-text-size-adjust: auto; text-transform: none; = >> orphans: 2; =3D
white- >> space: = >> normal; widows: 2; word-spacing: 0px; "><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill Sans'">Any = >> =3D
idea what the return >> code = >> is for line = >> 589?</font></span></div><div><span = >> =3D
class=3D3D"Apple- >> style-span"= >> style=3D3D"font-size: medium;"><font = >> =3D
class=3D3D"Apple- >> style-span"= >> color=3D3D"#0000FF" face=3D3D"'Gill =3D
> type=3D"cite">Sans'"><br></font></span></ >> div>&l= >> t;/span></span></span></span></span></ >> span&g= >> t;<=3D
> type=3D"cite">/span></span></div></span></ >> div>&= >> lt;/span></div><div><div>On 31 Oct 2009, = >> =3D
at 15:10, Mika >> Nystrom = >> wrote:</div><br =3D
> type=3D"cite">class=3D3D"Apple-interchange- >> newline"><blockquote = >> type=3D3D"cite"><div>Haha, =3D
> type=3D"cite">this is cool! &nbsp;I've never seen a program >> fail TWO = >> assertions! =3D
> type=3D"cite">(-lthr)<br><br>WARNING: >> MktPlace.RecApply: = >> asset CEPH:CAD not yet =3D
> type=3D"cite">(fully) initialized, will not attempt executions >> against = >> it.<br>WARNING: =3D
> type=3D"cite">TWSReplayer.ReqMktData: Couldnt find data for = >> =3D
> type >> = >> 3D"cite">CEPH:TSE:CAD<br><br><br>***<br>*** = >> runtime error:<br>*** =3D
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type >> = >> 3D >> "cite">589<br>***<br><br><br><br>***&= >> lt;br>*** runtime error:<br>*** =3D
> blockquote>
> type >> =3D"cite">&nbsp;&nbsp;&nbsp;&lt;*ASSERT*&gt; = >> failed.<br>*** &nbsp;&nbsp;&nbsp;file = >> =3D
> type=3D"cite">"../src/thread/PTHREAD/ThreadPThread.m3", line = >> =3D
> type=3D"cite">917<br>***<br><br><br>Program = >> received signal SIGABRT, =3D
> type=3D"cite">Aborted.<br>0x0000000804c9fa9c in thr_kill () >> from = >> =3D
> type=3D"cite">/lib/libc.so.7<br>(m3gdb) <br>Tony >> Hosking = >> writes:<br><blockquote =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te =3D
> type=3D"cite">type=3D3D"cite">--Apple- >> Mail-27--464514552<br></= >> blockquote><blockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Type: = >> text/plain;<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><span = >> class=3D3D"Apple-tab-span" style=3D3D"white-space:pre">> class=3D"Apple-tab-span" style=3D"white-space:pre"> = >> =3D
> type=3D"cite"></span>charset=3D3DUS-ASCII;<br></ >> blockquote&= >> gt;<blockquote type=3D3D"cite"><span=3D
> blockquote>> te type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>format=3D3Dflowed;<br></ >> blockquote>= >> <blockquote type=3D3D"cite"><span =3D
> blockquote>> type=3D"cite">class=3D3D"Apple-tab-span" = >> style=3D3D"white-space:pre">> style=3D"white-space:pre"> =3D
> type=3D"cite"></span>delsp=3D3Dyes<br></ >> blockquote><b= >> lockquote =3D
> type=3D"cite">type=3D3D"cite">Content-Transfer-Encoding: = >> =3D
> type=3D"cite">7bit<br></blockquote><blockquote = >> =3D
> type=3D"cite">type=3D3D"cite"><br></ >> blockquote><blockquo= >> te type=3D3D"cite">Can you try =3D
> type=3D"cite">linking with =3D
> type=3D"cite">-lthr?<br></blockquote></div></ >> blockquo= >> te></div><br></body></html>=3D
> blockquote>= >>

> type=3D"cite">--Apple-Mail-30--463553748--
> blockqu= >> ote>

= >> >> --Apple-Mail-35--461680347-- From hosking at cs.purdue.edu Sat Oct 31 21:16:57 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 16:16:57 -0400 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <20091031200623.C0BC71A2097@async.async.caltech.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <20091031200623.C0BC71A2097@async.async.caltech.edu> Message-ID: <1210FEF9-5EAD-4313-A96A-2709711F4BDE@cs.purdue.edu> Try regular gdb. Set a breakpoint at RTHooks__ReportFault. Then thread apply all bt. 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 31 Oct 2009, at 16:06, Mika Nystrom wrote: > With the RC m3gdb it either segfaults gdb or: > > (m3gdb) threads > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) threads all bt > Can't find Modula-3 identifier: ThreadPosix > (m3gdb) > > Tony Hosking writes: >> >> --Apple-Mail-33--461716527 >> Content-Type: text/plain; >> charset=US-ASCII; >> format=flowed; >> delsp=yes >> Content-Transfer-Encoding: 7bit >> >> threads all bt >> >> should give a backtrace of all threads. >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From mika at async.async.caltech.edu Sat Oct 31 21:29:08 2009 From: mika at async.async.caltech.edu (Mika Nystrom) Date: Sat, 31 Oct 2009 13:29:08 -0700 Subject: [M3devel] AMD64_FREEBSD problems with current RC from m3 site In-Reply-To: <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> References: <20091031161142.57E771A2097@async.async.caltech.edu> <20091031161514.C7E441A2097@async.async.caltech.edu> <7D03409A-CC44-4B27-BCE0-E7A3D110B242@cs.purdue.edu> <20091031182637.1D2DD1A209C@async.async.caltech.edu> <9666B412-E255-4103-9954-420E39AA9303@cs.purdue.edu> <20091031185401.0E3761A209C@async.async.caltech.edu> <20091031191011.63E701A2097@async.async.caltech.edu> <823EE49D-F6C9-4A13-A6BA-4EC73B00E13E@cs.purdue.edu> <20091031192335.050261A207D@async.async.caltech.edu> <33EF6250-2DCB-4ED9-9E1F-D850C0CD69DB@cs.purdue.edu> <20091031200810.AF0821A2097@async.async.caltech.edu> <9F90F741-3B45-4290-9C8C-5ABE1ABFE8BB@cs.purdue.edu> Message-ID: <20091031202908.E26BA1A2097@async.async.caltech.edu> Tony Hosking writes: >Deadlock is not possible in this instance. No other locks should be >held. I notice that it used to be EAGAIN: does that imply we should >be retrying the lock here? > >Did you confirm linking with -lthr? Yeah, the first (single ASSERT failure) was -lpthread. The second (double ASSERT failure) was -lthr. Mika From hendrik at topoi.pooq.com Sat Oct 31 22:39:19 2009 From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com) Date: Sat, 31 Oct 2009 17:39:19 -0400 Subject: [M3devel] m3 RC In-Reply-To: References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> Message-ID: <20091031213919.GA10521@topoi.pooq.com> On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: > Yeah, and if that is not working properly then it might also explain > your collector failures too. > > Have the RC archives not been updated for the changes to the RC > branch? It looks like you are using an old ThreadPThread. Does this mean we wish we already had an RC4? -- hendrik From hosking at cs.purdue.edu Sat Oct 31 22:44:50 2009 From: hosking at cs.purdue.edu (Tony Hosking) Date: Sat, 31 Oct 2009 17:44:50 -0400 Subject: [M3devel] m3 RC In-Reply-To: <20091031213919.GA10521@topoi.pooq.com> References: <20091031044719.94A4D1A209A@async.async.caltech.edu> <641F0ADA-C3DC-4DA4-8111-D4B4D5A4B49C@cs.purdue.edu> <20091031180805.9B6091A209C@async.async.caltech.edu> <20091031213919.GA10521@topoi.pooq.com> Message-ID: <1C5881C1-E011-4134-8FA7-4D7A9F2DCFD3@cs.purdue.edu> Not clear. It would be good to diagnose the error on FreeBSD 7 -lthr first. On 31 Oct 2009, at 17:39, hendrik at topoi.pooq.com wrote: > On Sat, Oct 31, 2009 at 02:10:14PM -0400, Tony Hosking wrote: >> Yeah, and if that is not working properly then it might also explain >> your collector failures too. >> >> Have the RC archives not been updated for the changes to the RC >> branch? It looks like you are using an old ThreadPThread. > > Does this mean we wish we already had an RC4? > > -- hendrik -------------- next part -------------- An HTML attachment was scrubbed... URL: