> On Jun 26, 2017, at 10:20 AM, Charles Srstka via swift-users 
> <swift-users@swift.org> wrote:
> 
> Rats, I was hoping that one of the reasons about being so explicit what we’re 
> going to access and where with bindMemory() and friends would be to take care 
> of these sorts of issues.

There are restrictions that unfortunately prevent unaligned memory support from 
being the pervasive default; particularly, we want typed pointers to be able to 
"toll-free-bridge" with typed C pointers, and C also requires well-alignedness 
of typed memory accesses. Swift's runtime generics model also means that 
unspecialized code would be using value witness functions to load/store values 
from memory, and the value witness functions are compiled to assume alignment 
of their arguments. It would be reasonable for us to add load/storeUnaligned 
APIs to the RawPointer types that explicitly did unaligned operations; these 
would however have to be restricted to working only on trivial types that don't 
require reference counting.

-Joe

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to