{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:07:32Z","timestamp":1784200052046,"version":"3.55.0"},"reference-count":68,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","funder":[{"DOI":"10.13039\/501100004359","name":"Vetenskapsr\u00e5det","doi-asserted-by":"publisher","award":["2023-05526"],"award-info":[{"award-number":["2023-05526"]}],"id":[{"id":"10.13039\/501100004359","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004359","name":"Vetenskapsr\u00e5det","doi-asserted-by":"publisher","award":["2024-04565"],"award-info":[{"award-number":["2024-04565"]}],"id":[{"id":"10.13039\/501100004359","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,6,10]]},"abstract":"<jats:p>The ways in which the components of a program interact with each other in a concurrent setting can be considerably more complex than in a sequential setting. The core problem is unrestricted shared mutable state. An alternative to unrestricted shared mutable state is to restrict the sharing using Ownership. Ownership can turn what would have been a race into a deterministic failure that can be explained to the programmer. However, Ownership has predominantly taken place in statically typed languages.<\/jats:p>\n                  <jats:p>In this paper, we explore retrofitting an existing dynamically typed programming language with an ownership model based on regions. Our core aim is to provide safe concurrency, that is, the ownership model should provide deterministic dynamic failures of ownership that can be explained to the programmer. We present a dynamic model of ownership that provides ownership of groups objects called regions. We provide dynamic enforcement of our region discipline, which we have implemented in a simple interpreter that provides a Pythonlike syntax and semantics, and report on our first steps into integrating it into an existing language, Python.<\/jats:p>","DOI":"10.1145\/3729313","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"1565-1590","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Dynamic Region Ownership for Concurrency Safety"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0006-5356-280X","authenticated-orcid":false,"given":"Fridtjof Peer","family":"Stoldt","sequence":"first","affiliation":[{"name":"Uppsala University, Uppsala, Sweden"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-5083-3311","authenticated-orcid":false,"given":"Brandt","family":"Bucher","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-4049-134X","authenticated-orcid":false,"given":"Sylvan","family":"Clebsch","sequence":"additional","affiliation":[{"name":"Microsoft Azure Research, Cambridge, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1019-8036","authenticated-orcid":false,"given":"Matthew A.","family":"Johnson","sequence":"additional","affiliation":[{"name":"Microsoft Azure Research, Cambridge, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-3937-1260","authenticated-orcid":false,"given":"Matthew J.","family":"Parkinson","sequence":"additional","affiliation":[{"name":"Microsoft Azure Research, Cambridge, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-4225-4995","authenticated-orcid":false,"given":"Guido","family":"van Rossum","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-8085-1088","authenticated-orcid":false,"given":"Eric","family":"Snow","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4269-5408","authenticated-orcid":false,"given":"Tobias","family":"Wrigstad","sequence":"additional","affiliation":[{"name":"Uppsala University, Uppsala, Sweden"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.5555\/547964"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","unstructured":"Jonathan Aldrich Valentin Kostadinov and Craig Chambers. 2002. Alias annotations for program understanding. In Proceedings of the 2002 ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications OOPSLA 2002 Seattle Washington USA November 4-8 2002. 311-330. doi:10.1145\/582419.582448","DOI":"10.1145\/582419.582448"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","unstructured":"J. Armstrong. 2007. A History of Erlang. In HOPL III. doi:10.1145\/1238844.1238850","DOI":"10.1145\/1238844.1238850"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","unstructured":"Ellen Arvidsson Elias Castegren Sylvan Clebsch Sophia Drossopoulou James Noble Matthew J. Parkinson and Tobias Wrigstad. 2023. Reference Capabilities for Flexible Memory Management.Proc. ACM Program. Lang. 7 OOPSLA2 Article 270 (oct 2023) 31 pages. doi:10.1145\/3622846","DOI":"10.1145\/3622846"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353197"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504287"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.370"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1029004"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","unstructured":"Stephan Brandauer Elias Castegren Dave Clarke Kiko Fernandez-Reyes Einar Broch Johnsen Ka I Pun Silvia Lizeth Tapia Tarifa Tobias Wrigstad and Albert Mingkun Yang. 2015. Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore. In Formal Methods for Multicore Programming \u2013 15th International School on Formal Methods for the Design of Computer Communication and Software Systems SFM 2015 Bertinoro Italy. 1-56. doi:10.1007\/978-3-319-18941-3_1","DOI":"10.1007\/978-3-319-18941-3_1"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-18317-5_20"},{"key":"e_1_3_2_12_2","author":"Castegren Elias","year":"2018","unstructured":"Elias Castegren. 2018. Capability-Based Type Systems for Concurrency Control. PhD Thesis. Uppsala UniversityUppsala University, Division of Computing Science, Computing Science. Backup Publisher: Uppsala University, Division of Computing Science ISBN: 978-91-513-0187-7 ISSN: 1651-6214 Issue: 1611 Series: Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology.","journal-title":"Capability-Based Type Systems for Concurrency Control"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-51060-1_3"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/3622852"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-36946-9_3"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45070-2_9"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.5555\/2554511"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89330-1_11"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286947"},{"key":"e_1_3_2_20_2","unstructured":"Sylvan Clebsch. 2017. Pony: Co-designing a Type System and a Runtime. PhD Thesis. Imperial College London."},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3687997.3695647"},{"key":"e_1_3_2_22_2","unstructured":"David Cunningham Sophia Drossopoulou and Susan Eisenbach. 2007. Universe Types for Race Safety. VAMP 07."},{"key":"e_1_3_2_23_2","doi-asserted-by":"crossref","unstructured":"J. Dedecker T. Van Cutsem S. Mostinckx T. D\u2019Hondt and W. De Meuter. 2006. Ambient-Oriented Programming in AmbientTalk. In ECOOP. 230-254.","DOI":"10.1007\/11785477_16"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/3486607.3486747"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3704859"},{"key":"e_1_3_2_26_2","unstructured":"Adele Goldberg and David Robson. 1983.Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co. Inc. USA."},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","unstructured":"Colin S. Gordon Matthew J. Parkinson Jared Parsons Aleks Bromfield and Joe Duffy. 2012. Uniqueness and reference immutability for safe parallelism. In Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications OOPSLA 2012 part of SPLASH 2012 Tucson AZ USA October 21-25 2012. 21-40. doi:10.1145\/2384616.2384619","DOI":"10.1145\/2384616.2384619"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/1297081.1297090"},{"key":"e_1_3_2_29_2","unstructured":"Sam Gross. 2023. PEP 703 \u2013 Making the Global Interpreter Lock Optional in CPython. https:\/\/peps.python.org\/pep0703\/."},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/543552.512563"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.90445"},{"key":"e_1_3_2_32_2","doi-asserted-by":"crossref","unstructured":"Michael W. Hicks J. Gregory Morrisett Dan Grossman and Trevor Jim. 2004. Experience with safe manual memorymanagement in Cyclone. In ISMM. 73-84.","DOI":"10.1145\/1029873.1029883"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117975"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/130943.130947"},{"key":"e_1_3_2_35_2","unstructured":"Vivian Hu. 2020. Rust Breaks into TIOBE Top 20 Most Popular Programming Languages. (June 2020). InfoQ."},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","unstructured":"B. Jacobs K.R.M. Leino F. Piessens and W. Schulte. 2005. Safe concurrency for aggregate objects with invariants. In Third IEEE International Conference on Software Engineering and Formal Methods (SEFM\u201905). 137-146. doi:10.1109\/SEFM.2005.39","DOI":"10.1109\/SEFM.2005.39"},{"key":"e_1_3_2_37_2","volume-title":"The Rust Programming Language (Covers Rust 2018)","author":"Klabnik Steve","year":"2019","unstructured":"Steve Klabnik and Carol Nichols. 2019. The Rust Programming Language (Covers Rust 2018). No Starch Press."},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-34175-6_13"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24851-4_22"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37036-6_22"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523443"},{"key":"e_1_3_2_42_2","unstructured":"Jay Miller. 2022. A Team at Microsoft is Helping Make Python Faster. https:\/\/devblogs.microsoft.com\/python\/python-311-faster-cpython-team\/."},{"key":"e_1_3_2_43_2","volume-title":"Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control","author":"Miller M.","year":"2006","unstructured":"M. Miller. 2006. Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control. PhD Thesis. Johns Hopkins University, USA."},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1007\/BFB0053062"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/TOOLS.1999.809424"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/2364489.2364493"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3652024.3665507"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.799"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167500"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454032"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","unstructured":"Ilya Sergey and Dave Clarke. 2012. Gradual Ownership Types. In Programming Languages and Systems \u2013 21st European Symposium on Programming ESOP 2012 Held as Part of the European Joint Conferences on Theory and Practice of Software ETAPS 2012 Tallinn Estonia March 24 \u2013 April 1 2012. Proceedings. 579-599. doi:10.1007\/978-3-642-28869-2_29","DOI":"10.1007\/978-3-642-28869-2_29"},{"key":"e_1_3_2_52_2","unstructured":"Marco Servetto David J. Pearce Lindsay Groves and Alex Potanin. 2013. Balloon Types for Safe Parallelisation over Arbitrary Object Graphs. In 4th Workshop on Determinism and Correctness in Parallel Programming."},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1145\/3408995"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454039"},{"key":"e_1_3_2_55_2","unstructured":"Eric Snow. 2022. PEP 684 \u2013 A Per-Interpreter GIL. https:\/\/peps.python.org\/pep-0684\/."},{"key":"e_1_3_2_56_2","unstructured":"Eric Snow and Eddie Elizondo. 2022. PEP 683 \u2013 Immortal Objects Using a Fixed Refcount. https:\/\/peps.python.org\/pep0683\/."},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","unstructured":"Sriram Srinivasan and Alan Mycroft. 2008. Kilim: Isolation-Typed Actors for Java. In ECOOP. doi:10.1007\/978-3-540-70592-5_6","DOI":"10.1007\/978-3-540-70592-5_6"},{"key":"e_1_3_2_58_2","unstructured":"Fridtjof Stoldt Matthew Parkinson Sylvan Clebsch Matthew Johnson and Tobias Wrigstad. 2025. FrankenScript: A tool to explore and visualize region-based ownership in dynamic programming languages. https:\/\/doi.org\/10.5281\/zenodo.15235762."},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/2364474.2364485"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/2047849.2047860"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2024\/8\/2"},{"key":"e_1_3_2_62_2","unstructured":"Guido vaan Rossum. 2007. It isn\u2019t Easy to Remove the GIL. https:\/\/www.artima.com\/weblogs\/viewpost.jsp?thread=214235."},{"key":"e_1_3_2_63_2","unstructured":"Guido vaan Rossum and Alyssa Coghlan. 2005. PEP 343 \u2013 The \"with\" Statement. https:\/\/peps.python.org\/pep-0343\/."},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320392"},{"key":"e_1_3_2_65_2","unstructured":"wikipedia 2024. Indiana pi bill. https:\/\/en.wikipedia.org\/wiki\/Indiana_pi_bill."},{"key":"e_1_3_2_66_2","unstructured":"Thomas Wouters. 2023. A Steering Council notice about PEP 703 (Making the Global Interpreter Lock Optional in CPython). https:\/\/discuss.python.org\/t\/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython\/30474."},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_21"},{"key":"e_1_3_2_68_2","unstructured":"Nosheen Zaza. 2013. Evaluating the Accuracy of Annotations in the Loci 3.0 Pluggable Type Checker. Master\u2019s thesis. Uppsala University."},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2020\/4\/1"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729313","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:09:15Z","timestamp":1784196555000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729313"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,10]]},"references-count":68,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729313"],"URL":"https:\/\/doi.org\/10.1145\/3729313","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-14","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}