05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Contents<br />

4.4. RoarVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

4.4.1. Execution Mo<strong>de</strong>l, Primitives, and Byteco<strong>de</strong>s . . . . . . . 102<br />

4.4.2. Memory Systems Design . . . . . . . . . . . . . . . . . . 104<br />

4.4.3. Process-based Parallel VM . . . . . . . . . . . . . . . . . 107<br />

4.4.4. Final Remarks . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

4.5. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />

5. An Ownership-based MOP for Expressing Concurrency Abstractions109<br />

5.1. Open Implementations and Metaobject Protocols . . . . . . . . 110<br />

5.2. Design of the OMOP . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />

5.3. The OMOP By Example . . . . . . . . . . . . . . . . . . . . . . . 118<br />

5.3.1. Enforcing Immutability . . . . . . . . . . . . . . . . . . . 118<br />

5.3.2. Clojure Agents . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

5.4. Semantics of the MOP . . . . . . . . . . . . . . . . . . . . . . . . 124<br />

5.5. Customizations and VM-specific Design Choices . . . . . . . . . 128<br />

5.6. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

5.7. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

6. Evaluation: The OMOP as a Unifying Substrate 137<br />

6.1. Evaluation Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

6.1.1. Evaluation Goal . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

6.1.2. Evaluation Criteria and Rationale . . . . . . . . . . . . . 138<br />

6.2. Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />

6.2.1. Clojure Agents . . . . . . . . . . . . . . . . . . . . . . . . 142<br />

6.2.2. Software Transactional Memory . . . . . . . . . . . . . . 148<br />

6.2.3. Event-Loop Actors: AmbientTalkST . . . . . . . . . . . . 153<br />

6.2.4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

6.3. Supported Concepts . . . . . . . . . . . . . . . . . . . . . . . . . 158<br />

6.3.1. Supported Concepts . . . . . . . . . . . . . . . . . . . . . 158<br />

6.3.2. Partially Supported Concepts . . . . . . . . . . . . . . . . 160<br />

6.3.3. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />

6.4. Comparing Implementation Size . . . . . . . . . . . . . . . . . . 161<br />

6.4.1. Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

6.4.2. Clojure Agents . . . . . . . . . . . . . . . . . . . . . . . . 163<br />

6.4.3. LRSTM: Lukas Renggli’s STM . . . . . . . . . . . . . . . 164<br />

6.4.4. Event-Loop Actors: AmbientTalkST . . . . . . . . . . . . 167<br />

6.4.5. Summary and Conclusion . . . . . . . . . . . . . . . . . . 168<br />

6.5. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169<br />

6.5.1. Remaining Evaluation Criteria . . . . . . . . . . . . . . . 169<br />

xi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!