<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">I've discussed this briefly with Philip Schatz, who is working on OS-level threads, but I'm looking into the possibility of implementing a transactional memory system for SML.  In particular, I'm interested in a compiler-based STM implementation as opposed to the more typical library-based approaches.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>The first option I discussed with Philip was to insert calls to an existing library implementation, reasoning that they could be replaced with internal implementations at a later time, but this loses due to the fact that any TM system in existence right now uses the C-style stack.  However, I'd like to look into exactly what a compiler can do to implement STM more efficiently anyway, so constructing a framework specifically for MLton SML is something I'm considering.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><DIV>The main delicate point I see is the interplay between the scheduler, the TM system, and the garbage collector.  I'd like to get some input on the developers as to what the best implementation strategy would be.  Specifically, which components should use which others, and how?</DIV><DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>-- </DIV><DIV>Eric McCorkle</DIV><DIV>Brown University</DIV><DIV>CS Graduate Student</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></DIV></DIV></BODY></HTML>