{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:41:28Z","timestamp":1780994488895,"version":"3.54.1"},"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  \nother in a concurrent setting can be considerably more complex  \nthan in a sequential setting. The core problem is unrestricted  \nshared mutable state. An alternative to unrestricted shared  \nmutable state is to restrict the sharing using Ownership.  \nOwnership can turn what would have been a race into a  \ndeterministic failure that can be explained to the programmer.  \nHowever, Ownership has predominantly taken place in statically  \ntyped languages.<\/jats:p>\n          <jats:p>In this paper, we explore retrofitting an existing dynamically  \ntyped programming language with an ownership model based on  \nregions. Our core aim is to provide safe concurrency, that is, the  \nownership model should provide deterministic dynamic failures of  \nownership that can be explained to the programmer. We present a  \ndynamic model of ownership that provides ownership of groups  \nobjects called regions. We provide dynamic enforcement of our  \nregion discipline, which we have implemented in a simple  \ninterpreter that provides a Python-like syntax and semantics, and  \nreport on our first steps into integrating it into an existing  \nlanguage, 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_2_2_1_1","volume-title":"A Theory of Objects","author":"Abadi Martin","unstructured":"Martin Abadi and Luca Cardelli. 1996. A Theory of Objects (1st ed.). Springer-Verlag, Berlin, Heidelberg. isbn:0387947752","edition":"1"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582448"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","unstructured":"J. Armstrong. 2007. A History of Erlang. In HOPL III. https:\/\/doi.org\/10.1145\/1238844.1238850 10.1145\/1238844.1238850","DOI":"10.1145\/1238844.1238850"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622846"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353197"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504287"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.370"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1029004"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-18941-3_1"},{"key":"e_1_2_2_10_1","doi-asserted-by":"crossref","unstructured":"T. H. Brus M. C. J. D. van Eekelen M. O. van Leer and M. J. Plasmeijer. 1987. Clean \u2014 A language for functional graph rewriting. In Functional Programming Languages and Computer Architecture Gilles Kahn (Ed.). Springer Berlin Heidelberg Berlin Heidelberg. 364\u2013384. isbn:978-3-540-47879-9","DOI":"10.1007\/3-540-18317-5_20"},{"key":"e_1_2_2_11_1","volume-title":"Capability-Based Type Systems for Concurrency Control","author":"Castegren Elias","unstructured":"Elias Castegren. 2018. Capability-Based Type Systems for Concurrency Control. 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"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-51060-1_3"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3622852"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-36946-9_3"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45070-2_9"},{"key":"e_1_2_2_16_1","volume-title":"Aliasing in Object-oriented Programming: Types, Analysis and Verification. 7850","author":"Clarke David","unstructured":"David Clarke, Tobias Wrigstad, and James Noble. 2013. Aliasing in Object-oriented Programming: Types, Analysis and Verification. 7850, Springer."},{"key":"e_1_2_2_17_1","volume-title":"Minimal Ownership for Active Objects","author":"Clarke Dave","unstructured":"Dave Clarke, Tobias Wrigstad, Johan \u00d6stlund, and Einar Broch Johnsen. 2008. Minimal Ownership for Active Objects. In Programming Languages and Systems, G. Ramalingam (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 139\u2013154. isbn:978-3-540-89330-1"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/286942.286947"},{"key":"e_1_2_2_19_1","volume-title":"Pony: Co-designing a Type System and a Runtime.","author":"Clebsch Sylvan","year":"2017","unstructured":"Sylvan Clebsch. 2017. Pony: Co-designing a Type System and a Runtime.. Imperial College London."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3687997.3695647"},{"key":"e_1_2_2_21_1","volume-title":"Universe Types for Race Safety. VAMP 07","author":"Cunningham David","unstructured":"David Cunningham, Sophia Drossopoulou, and Susan Eisenbach. 2007. Universe Types for Race Safety. VAMP 07."},{"key":"e_1_2_2_22_1","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\u2013254.","DOI":"10.1007\/11785477_16"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3486607.3486747"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3704859"},{"key":"e_1_2_2_25_1","volume-title":"Smalltalk-80: the language and its implementation","author":"Goldberg Adele","year":"2011","unstructured":"Adele Goldberg and David Robson. 1983. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., USA. isbn:0201113716"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384619"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297081.1297090"},{"key":"e_1_2_2_28_1","unstructured":"Sam Gross. 2023. PEP 703 \u2013 Making the Global Interpreter Lock Optional in CPython. https:\/\/peps.python.org\/pep-0703\/"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/543552.512563"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.90445"},{"key":"e_1_2_2_31_1","doi-asserted-by":"crossref","unstructured":"Michael W. Hicks J. Gregory Morrisett Dan Grossman and Trevor Jim. 2004. Experience with safe manual memory-management in Cyclone. In ISMM. 73\u201384.","DOI":"10.1145\/1029873.1029883"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117975"},{"key":"e_1_2_2_33_1","first-page":"2","volume-title":"The Geneva Convention on the Treatment of Object Aliasing. OOPS Messenger, 3","author":"Hogg J.","year":"1992","unstructured":"J. Hogg, D. Lea, A. Wills, D. de Champeaux, and R. Holt. 1992. The Geneva Convention on the Treatment of Object Aliasing. OOPS Messenger, 3, 2 (1992), April."},{"key":"e_1_2_2_34_1","unstructured":"Vivian Hu. 2020. Rust Breaks into TIOBE Top 20 Most Popular Programming Languages. June InfoQ"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/SEFM.2005.39"},{"key":"e_1_2_2_36_1","volume-title":"The Rust Programming Language (Covers Rust","author":"Klabnik Steve","year":"2018","unstructured":"Steve Klabnik and Carol Nichols. 2019. The Rust Programming Language (Covers Rust 2018). No Starch Press."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-34175-6_13"},{"key":"e_1_2_2_38_1","volume-title":"Object Invariants in Dynamic Contexts. In ECOOP 2004 \u2013 Object-Oriented Programming, Martin Odersky (Ed.). Springer Berlin Heidelberg","author":"K. Rustan","unstructured":"K. Rustan M. Leino and Peter M\u00fcller. 2004. Object Invariants in Dynamic Contexts. In ECOOP 2004 \u2013 Object-Oriented Programming, Martin Odersky (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 491\u2013515. isbn:978-3-540-24851-4"},{"key":"e_1_2_2_39_1","volume-title":"Structural Lock Correlation with Ownership Types","author":"Lu Yi","unstructured":"Yi Lu, John Potter, and Jingling Xue. 2013. Structural Lock Correlation with Ownership Types. In Programming Languages and Systems, Matthias Felleisen and Philippa Gardner (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 391\u2013410. isbn:978-3-642-37036-6"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523443"},{"key":"e_1_2_2_41_1","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_2_2_42_1","volume-title":"Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control","author":"Miller M.","unstructured":"M. Miller. 2006. Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control. Johns Hopkins University. USA."},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFB0053062"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.5555\/832259.833146"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364489.2364493"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3652024.3665507"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.799"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167500"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454032"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_29"},{"key":"e_1_2_2_51_1","volume-title":"4th Workshop on Determinism and Correctness in Parallel Programming.","author":"Servetto Marco","year":"2013","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_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/3408995"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454039"},{"key":"e_1_2_2_54_1","unstructured":"Eric Snow. 2022. PEP 684 \u2013 A Per-Interpreter GIL. https:\/\/peps.python.org\/pep-0684\/"},{"key":"e_1_2_2_55_1","unstructured":"Eric Snow and Eddie Elizondo. 2022. PEP 683 \u2013 Immortal Objects Using a Fixed Refcount. https:\/\/peps.python.org\/pep-0683\/"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_6"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","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 10.5281\/zenodo.15235762","DOI":"10.5281\/zenodo.15235762"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364474.2364485"},{"key":"e_1_2_2_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2047849.2047860"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.22152\/programming-journal.org\/2024\/8\/2"},{"key":"e_1_2_2_61_1","unstructured":"Guido van Rossum. 2007. It isn\u2019t Easy to Remove the GIL. https:\/\/www.artima.com\/weblogs\/viewpost.jsp?thread=214235"},{"key":"e_1_2_2_62_1","unstructured":"Guido van Rossum and Alyssa Coghlan. 2005. PEP 343 \u2013 The \u201cwith\u201d Statement. https:\/\/peps.python.org\/pep-0343\/"},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320392"},{"key":"e_1_2_2_64_1","unstructured":"2024. Indiana pi bill. https:\/\/en.wikipedia.org\/wiki\/Indiana_pi_bill"},{"key":"e_1_2_2_65_1","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_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_21"},{"key":"e_1_2_2_67_1","volume-title":"Evaluating the Accuracy of Annotations in the Loci 3.0 Pluggable Type Checker. Master\u2019s thesis","author":"Zaza Nosheen","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_2_2_68_1","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":[[2025,7,16]],"date-time":"2025-07-16T06:08:34Z","timestamp":1752646114000},"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"}}]}}