{"id":"language--binding-modes","name":"Ordinary, copy, original, and memoryAddress","owner":"yeho","package":"language","kind":"language","signature":"Function(Type value)\nFunction(Type copy value)\nFunction(Type original value)\nFunction(Type memoryAddress value)","description":"Binding modes make value transfer and aliases visible at function and loop boundaries.","context":"Use ordinary parameters by default, copy for an explicit independent value, original for an admitted source alias, and memoryAddress only at a reviewed low-level boundary.","parameters":[],"returns":"","members":[],"tags":["complete-program","copy","cpu","extension","language","memory","memoryAddress","original","yeho"],"updated":"2026-09-09","source":{"repository":"yeho","path":"memory-lifetime-unsafe-2026.1.json; parser_types.cpp parseParameters"},"status":"experimental","notes":["Alias modes are restricted by type and target.","Task aliases are rejected. memoryAddress is not a general raw-pointer escape hatch."],"examples":[{"id":"complete","title":"Scalar by reference","description":"Use ordinary parameters by default, copy for an explicit independent value, original for an admitted source alias, and memoryAddress only at a reviewed low-level boundary.","code":"Bump(int original value)\n{\n    value = value + 1\n}\n\nSet(int memoryAddress value, int next)\n{\n    value = next\n}\n\nint value = 1\nBump(value)\nSet(value, 5)\n\nif value == 5\n{\n    Console.Log(\"byref-ok\")\n}\nelse\n{\n    Console.Log(\"byref-bad\")\n}\n\n\n","manifest":"package = \"tests.compiler.kyber.scalarByReference\"\nversion = \"0.1.0\"\nbackend = \"kyber\"\nosTarget = \"windows\"\narchTarget = \"x64\"\nselfContainedApp = false\n\n\n\n","tags":["cpu","complete-program"],"verification":"type checked","run":"cpu-oracle","source":"tests/compiler/kyber/scalar-by-reference/start.yh","sha256":"110cf9ca11240c5b451226793ac46eb21977f415a345d89cc0feef8f2bdd4f4f","checked":"2026-09-09","diagnostic":"","observedOutput":null,"checkedBackend":null}],"searchTerms":[],"url":"https://demonhunterlabs.com/academy/api?item=language--binding-modes","json":"https://demonhunterlabs.com/reference/items/language--binding-modes.json","markdown":"https://demonhunterlabs.com/reference/text/language--binding-modes.md"}
