Slide 21
Slide 21 text
Versioning
Most Of These Execution Modes Permit Code To Be Built At Different Times And Linked Together At Runtime. Nevertheless, We
Require That All Go Code That Is Combined Into A Single Executable Image Must Be Built With The Same Version Of The Go
Toolchain. We Require Further That If Any Go Package Appears More Than Once In The Executable Image, It Must Be Built From
The Same Source Code.
This Is A Very Strict Requirement. It Means That If A C Program Has A C Api Style Plugin Interface, And It Opens Multiple
Plugins Written In Go, All Of Those Plugins Must Be Built With The Same Version Of The Go Toolchain, And Any Shared Packages
Must Be Identical. It May Be Possible To Weaken This Restriction In The Future, But We’ll Start With This.
Go Execution Modes (from Feature Proposals)
GVLVPLBHP
͜ΕΒͷ࣮ߦϞʔυͷ΄ͱΜͲɺ࣮ߦ࣌ʹίʔυΛҟͳΔ࣌ؒʹߏஙͯ͠ϦϯΫ͢Δ͜ͱΛՄೳʹ͠·͢ɻ ͦΕʹ͔͔ΘΒͣɺ୯Ұ
ͷ࣮ߦՄೳΠϝʔδʹ݁߹͞Εͨͯ͢ͷGoίʔυɺಉ͡όʔδϣϯͷGoπʔϧνΣʔϯͰߏங͢Δඞཁ͕͋Γ·͢ɻ ࣮ߦՄೳΠϝʔ
δʹෳͷGoύοέʔδ͕ෳදࣔ͞ΕΔ߹ɺಉ͡ιʔείʔυ͔Βߏங͢Δඞཁ͕͋Γ·͢ɻ
͜Εඇৗʹݫ͍͠ཁ݅Ͱ͢ɻ ͭ·ΓɺCϓϩάϥϜʹC APIελΠϧͷϓϥάΠϯΠϯλʔϑΣΠε͕͋ΓɺGoͰॻ͔Εͨෳͷϓϥά
ΠϯΛ։͘ͱɺͦΕΒͷϓϥάΠϯͯ͢GoπʔϧνΣʔϯͷಉ͡όʔδϣϯͰϏϧυ͞Εͳ͚ΕͳΒͣɺڞ༗ύοέʔδಉҰͰ
ͳ͚ΕͳΓ·ͤΜɻ কདྷ͜ͷ੍ݶΛऑΊΔ͜ͱՄೳ͔͠Ε·ͤΜ͕ɺ͜Ε͔Β࢝ΊΔͭΓͰ͢ɻ