Odin has been designed to be a pragmatic and evolutionary language, and as such, most people have come to appreciate the results of that, especially stability of language features. Odin rarely experiences breaking changes, however we have some technical debt to pay.Packages base:runtime and core:os are the oldest packages in the core library of Odin, as they were used in bootstrapping the language and the rest of the packages. Over time they became an amalgamation of ideas, added as and when things were needed. base:runtime has already been cleaned up, but core:os’s general API was poorly designed and inconsistent across platforms. Certain procedures were available only on specific platforms and other procedures, while available on all platforms, didn’t have a unified signature across them. Constants and errors messages were all platform-specific, leading to less than ideal cross-platform behaviour.Over the past couple of years, we have been redesigning the entirety of core:os (which at the time of writing is core:os/os2) to be in keeping with the standards of the core library. We have learnt a lot over the years in terms of library and API design for Odin, and we want to incorporate those lessons into one of its most foundational packages.Transition Period #There will be numerous breaking changes for core:os, but we have promised to give notice well in advance of when this will happen and how we plan to transition. This article is that notice.We are expecting to transition to the new design of core:os early next year (Q1 2026).Note: core:os/os2 is already available to use today. When the transition happens, this will become core:os, and core:os/os2 will be no more.New Design #The new package has changed many aspects of how you interact with core:os; an overview:All procedures that returned allocated memory will require an explicit allocator to be passedIf you want to emulate the current functionality, it is recommended that you pass context.allocator or context.tem...
First seen: 2025-12-31 06:06
Last seen: 2025-12-31 16:08