[M3devel] RC merge
jay.krell at cornell.edu
jay.krell at cornell.edu
Sat Sep 12 05:37:44 CEST 2009
I don't like the caller to have to cast.
- Jay (phone)
On Sep 11, 2009, at 7:19 PM, Tony Hosking <hosking at cs.purdue.edu> wrote:
> Yes, that was exactly my intention. I wasn't quite sure what your
> problem was with the code I had returning ADDRESS, but was willing
> to accede. It is "safe", but you can't use the result unless in
> UNSAFE code.
>
> Antony Hosking | Associate Professor | Computer Science | Purdue
> University
> 305 N. University Street | West Lafayette | IN 47907 | USA
> Office +1 765 494 6001 | Mobile +1 765 427 5484
>
>
>
>
> On 11 Sep 2009, at 17:33, Jay K wrote:
>
>> ps: I think there's another funny thing here:
>> I think you can have:
>>
>> INTERFACE FooInterface;
>>
>> PROCEDURE SafeFunction();
>> PROCEDURE UnsafeFunction()=ADDRESS;
>>
>> END FooInterface.
>>
>> Despite being in a safe interface, UnsafeFunction either can't be
>> called
>> from safe code, or at least its return value can't be used? Or at
>> least
>> can't be done anything with but compare to NIL?
>> I think.
>> Therefore this interface could be said to be "partially unsafe".
>>
>> Perhaps not a useful middle ground though.
>>
>> - Jay
>>
>> From: jay.krell at cornell.edu
>> To: hosking at cs.purdue.edu
>> CC: m3devel at elegosoft.com
>> Subject: RE: [M3devel] RC merge
>> Date: Fri, 11 Sep 2009 21:26:00 +0000
>>
>> Yes and no. I agree I made a small mess. I'm not sure you have
>> quite described how it should be.
>>
>> I propose a few options:
>> 1 - asis, probably not
>> 2 - rename/merge ThreadUnsafe to ThreadInternal
>> 3 - move the part that external folks use, probably just MyId, to
>> Thread, and then move ThreadUnsafe back to ThreadF, maybe
>> ThreadInternal to ThreadF too
>>
>> 2 at least removes one interface that I added, reducing the three
>> similar ThreadF, ThreadUnsafe, ThreadInternal, to just two, ThreadF
>> and ThreadInternal
>>
>> 3 maybe gratuitously breaks folks but is a clean result
>>
>> 4 - like you said, make all ThreadF users unsafe; but IF it is
>> just MyId, and I'm not sure it is, which seems harmless, right?
>> seems wrong to make them unsafe.
>>
>> - Jay
>>
>> From: hosking at cs.purdue.edu
>> To: jay.krell at cornell.edu
>> Date: Fri, 11 Sep 2009 16:51:11 -0400
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] RC merge
>>
>> Sorry, it looks like my commit failed last night because of need to
>> merge with your ThreadUnsafe stuff.
>>
>> FYI, we really should think about making ThreadF UNSAFE since
>> anyone invoking on it is exposed to dangerous parts of the run-time
>> system. Is there any need for it really to be safe?
>>
>> On 11 Sep 2009, at 16:05, Jay K wrote:
>>
>> Tony I'll double check if I see the hang. NT386 still crashes.
>>
>> http://www.modula3.com/cm3/ChangeLog-2009
>>
>> "
>> 2009-09-08 05:54 hosking
>>
>> * m3-libs/m3core/src/: convert/CConvert.m3,
>> runtime/common/RTAllocator.m3, runtime/common/RTCollector.m3,
>> runtime/common/RTCollectorSRC.i3, runtime/common/RTHeapInfo.m3,
>> runtime/common/RTHeapRep.i3, runtime/common/RTHeapRep.m3,
>> runtime/common/RTHeapStats.m3, runtime/common/RTLinker.m3,
>> runtime/common/RTOS.i3, runtime/ex_frame/RTExFrame.m3,
>> runtime/ex_stack/RTExStack.m3, thread/POSIX/ThreadF.i3,
>> thread/POSIX/ThreadPosix.m3, thread/PTHREAD/ThreadF.i3,
>> thread/PTHREAD/ThreadPThread.m3, thread/WIN32/ThreadF.i3,
>> thread/WIN32/ThreadWin32.m3:
>>
>> Tidy up use of thread.inCritical to only occur in allocation
>> sequences and in
>> thread stoppage. This simplifies reasoning. Refactored use of
>> heap lock
>> in the process. This may be better implemented on PTHREAD
>> targets using a
>> recursive pthread mutex instead of one we roll ourselves from a
>> non-recursive
>> mutex.
>>
>> Still witnessing random hangs in Juno and mentor on I386_DARWIN.
>> Strange, I thought this was working previously.
>> I wonder if there is some sort of race in the GUI code somewhere?
>> "
>>
>> ??
>> - Jay
>>
>>
>> From: hosking at cs.purdue.edu
>> To: jay.krell at cornell.edu
>> Date: Fri, 11 Sep 2009 12:46:19 -0400
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] RC merge
>>
>> No, the hangs in Juno and mentor are no longer there. I cannot
>> reproduce them on I386_DARWIN.
>>
>> On 11 Sep 2009, at 10:24, Jay K wrote:
>>
>> But the hangs are still present, right? Worth merging without that
>> fixed?
>>
>> How does one do it easily?
>> I wish we used Perforce. :(
>>
>> - Jay
>>
>>
>> From: hosking at cs.purdue.edu
>> To: m3devel at elegosoft.com
>> Date: Fri, 11 Sep 2009 09:45:23 -0400
>> Subject: [M3devel] RC merge
>>
>> Can someone merge my recent deep fixes to pthreads threading over
>> to the release branch? I won't get a chance to do so until next
>> Monday at the earliest.
>>
>> 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: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090911/eca9b909/attachment-0002.html>
More information about the M3devel
mailing list