Skip to main content

A High-Level Implementation of Composable Memory Transactions in Concurrent Haskell

  • Conference paper
Book cover Implementation and Application of Functional Languages (IFL 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4015))

Included in the following conference series:

Abstract

Composable memory transactions are a new communication abstraction for Concurrent Haskell which provides the programmer with a composable communication concept. Unfortunately, composable memory transactions are implemented as external functions for ghc version 6.4 and not available for other implementations of Concurrent Haskell. We present an implementation of memory transactions within Concurrent Haskell. The presented library can be executed within older ghc versions as well as with the popular Hugs system. Benchmarks show that our library performes well. Furthermore, our (high-level) implementation can be extended and maintained more easily than the low-level implementation provided by ghc 6.4.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Christiansen, J., Huch, F.: Searching for deadlocks while debugging concurrent haskell programs. In: ICFP 2004: Proceedings of the ninth ACM SIGPLAN international conference on Functional programming, pp. 28–39. ACM Press, New York (2004)

    Chapter  Google Scholar 

  2. Claessen, K.: A poor man’s concurrency monad. Journal of Functional Programming 9(3), 313–323 (1999)

    Article  MATH  Google Scholar 

  3. Discolo, A., Harris, T., Marlow, S., Jones, S.L.P., Singh, S.: Lock free data structures using STM in haskell. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 65–80. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Dornan, C.: Tcl + Haskell = TclHaskell. In: Glasgow FP Group Workshop, Pitlochry, Scotland (September 1998), http://www.dcs.gla.ac.uk/~nww/TkHaskell/TkHaskell.html

  5. Chakravarty, M. (ed.): The Haskell 98 foreign function interface 1.0: An addendum to the Haskell 1998 report, http://www.cse.unsw.edu.au/chak/haskell/ffi/

  6. The Glasgow Haskell compiler, http://www.haskell.org/ghc/

  7. Harris, T., Marlow, S., Peyton Jones, S.: Haskell on a shared-memory multiprocessor. In: Haskell 2005: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, pp. 49–61. ACM Press, New York (2005)

    Chapter  Google Scholar 

  8. Harris, T., Marlow, S., Peyton-Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 48–60. ACM Press, New York (2005)

    Chapter  Google Scholar 

  9. Huch, F., Norbisrath, U.: Distributed programming in haskell with ports. In: Mohnen, M., Koopman, P. (eds.) IFL 2000. LNCS, vol. 2011, pp. 107–121. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  10. The Haskell interpreter Hugs. http://www.haskell.org/hugs/

  11. Peyton Jones, S.: Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell. In: Engineering theories of software construction, Marktoberdorf Summer School 2000. NATO ASI Series. IOS Press, Amsterdam (2001)

    Google Scholar 

  12. Peyton Jones, S., Gordon, A., Finne, S.: Concurrent Haskell. In: Conference Record of POPL 1996: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida, 21–24, pp. 295–308 (1996)

    Google Scholar 

  13. Marlow, S., Peyton Jones, S., Thaller, W.: Extending the Haskell foreign function interface with concurrency. In: Proceedings of the ACM SIGPLAN workshop on Haskell, Snowbird, Utah, USA, pp. 57–68 (September 2004)

    Google Scholar 

  14. A Concurrent Haskell Testsuite. http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/testsuite/tests/ghc-regress/concurrent/should_run/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Huch, F., Kupke, F. (2006). A High-Level Implementation of Composable Memory Transactions in Concurrent Haskell. In: Butterfield, A., Grelck, C., Huch, F. (eds) Implementation and Application of Functional Languages. IFL 2005. Lecture Notes in Computer Science, vol 4015. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11964681_8

Download citation

  • DOI: https://doi.org/10.1007/11964681_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69174-7

  • Online ISBN: 978-3-540-69175-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics