[M3devel] CM3 5.8 Release Engineering, was Re: back again -- cm3 status worse?
Tony Hosking
hosking at cs.purdue.edu
Wed Sep 23 04:46:30 CEST 2009
What about these?
They appear to be Trestle and icon-related...
2009-02-18 11:14 jkrell
* m3-libs/m3core/src/win32/WinUser.i3,
m3-libs/m3core/src/win32/WinUserC.c,
m3-libs/m3core/src/win32/m3makefile, m3-ui/ui/src/winvbt/
WinTrestle.m3:
workaround gcc backend bug that names
<*EXTERNAL WindowFromPoint:WINAPI*>
PROCEDURE WindowFromPoint (Point: POINT): HWND;
WindowFromPoint at 4 instead of WindowFromPoint at 8
by adding
<*EXTERNAL WinUser__WindowFromPointWorkaround:WINAPI*>
PROCEDURE WindowFromPointWorkaround (VAR Point: POINT): HWND;
HWND __stdcall WinUser__WindowFromPointWorkaround (POINT* Point)
{
return WindowFromPoint(*Point);
}
This lets I386_MINGW (NT386MINGNU) get further.
2009-02-18 10:51 jkrell
* m3-sys/windowsResources/src/winRes.tmpl:
adapt to MinGW which has windres instead of rc with different
command line usage; detect MinGW by checking if backend mode is
integrated backend or not, not great..it should really be informed by
a variable in the toplevel configuration -- CONFIG_HAS_RC and
CONFIG_HAS_WINDRES?
On 22 Sep 2009, at 22:25, Tony Hosking wrote:
> On 22 Sep 2009, at 21:51, Jay K wrote:
>
>> Tony there is something a bit gray that you are missing.
>
> Yes, clearly I am missing something.
>
>> The behavior with @M3nogc we don't necessarily consider bad/wrong/
>> buggy.
>
> Right, it just takes GC out of the equation for what might be wrong.
>
>> It is a consistent assertion failure. Not an access violation.
>
> Good. We can debug that.
>
>> It could just be Trestle not being fully supported on Windows.
>> Olaf says Trestle was never fully ported.
>
> I don't know enough about this to say either way.
>
>> I'm not sure anyone knows what is missing, and if Juno really
>> demonstrates that or not.
>>
>> However, versions before Feb 20 consistently act like current
>> versions act with @M3nogc.
>> Before Feb 20 without @M3nogc.
>> Current with @M3nogc.
>
> What does this mean? That pre-2009-02 is just the same as
> post-2009-02? How does that narrow anything down to that specific
> time-frame?
>
>> What I'd like to see is current without @M3nogc to act just as bad
>> but no worse than before Feb 20. I think the current behavior
>> without @M3nogc is worse. It's just "fail vs. no fail".
>
> I still don't understand what this says about that particular time-
> frame.
>
>> Now, that is apples and oranges. For example, I relatively
>> recently changed the default initial allocation size and maybe
>> incremental allocation sizes. In particular..I forget the exact
>> details but I think changed from malloc to VirtualAlloc, and
>> VirtualAlloc allocates in 64K chunks. I guess I should review
>> that..but that was more recent I think, after Feb 20. I have to
>> check.
>> The code was a bit flawed somehow and I improved it somehow. I
>> forget. Almost everything is subject to rerererereview when there
>> is a bug, granted.
>>
>>
>> I agree as well that Feb 20 might have just uncovered a preexisting
>> problem.
>>
>>
>> But much is unclear and figuring this out I don't think will be
>> easy. :(
>
> If we have a deterministic failure then it should be easy enough to
> track down.
>
>>
>>
>> - Jay
>>
>>
>>
>> From: hosking at cs.purdue.edu
>> To: jay.krell at cornell.edu
>> Date: Tue, 22 Sep 2009 21:40:27 -0400
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] CM3 5.8 Release Engineering, was Re: back
>> again -- cm3 status worse?
>>
>>
>> On 22 Sep 2009, at 08:16, Jay K wrote:
>>
>> Yes there is fairly definitely a problem on Windows and it dates, I
>> think, to this change:
>>
>>
>> 2009-02-16 02:20 hosking
>> * m3-libs/m3core/src/: Csupport/VAX/dtoa.c, Csupport/big-endian/
>> dtoa.c,
>> Csupport/little-endian/dtoa.c, convert/CConvert.i3,
>> convert/CConvert.m3, runtime/I386_DARWIN/RTThread.m3,
>> runtime/common/RTCollector.m3, runtime/common/RTHeapRep.i3,
>> runtime/common/RTOS.i3, thread/POSIX/ThreadPosix.m3,
>> thread/PTHREAD/ThreadF.i3, thread/PTHREAD/ThreadPThread.m3,
>> thread/PTHREAD/ThreadPThreadC.c, thread/PTHREAD/
>> ThreadPThreadC.i3,
>> thread/WIN32/ThreadWin32.m3:
>> Clean up RTOS.LockHeap/RTOS.UnlockHeap implementations to better
>> match underlying pthread semantics.
>> This means that RTOS.WaitHeap must be called while RTOS.LockHeap
>> is held.
>> RTOS.BroadcastHeap can be called whether RTOS.LockHeap is held or
>> not.
>>
>> I'm not convinced that this change itself broke things, but perhaps
>> instead exposed the brokenness. In any case, debugging this in the
>> head will probably be easiest. If we have an example that
>> deterministically breaks then I think we have a place to start. My
>> suggestion for now, since it appears to trigger the problem, is to
>> use @M3nogc.
>>
>>
>
More information about the M3devel
mailing list