When writing high-performance code, it is fairly common to check the alignment 
of pointers so that initial elements can be processed until some suitable 
alignment is reached to use a faster implementation, or to verify that a fast 
algorithm can be used.

> On Dec 8, 2015, at 10:59 AM, Michael Buckley via swift-dev 
> <swift-dev@swift.org> wrote:
> 
> I'm looking for a good starter project, so normally I would be interested in 
> taking this, but I'm not sure I can think of a good motivation for it. 
> UnsafePointer's advanceBy and distanceTo functions take care of pointer 
> arithmetic more safely than converting to int would, and the debugDescription 
> property can get you the address for debugging purposes.
> 
> Considering that everything that goes through the swift-evolution process 
> needs to have a motivation, is there a use case for this that I'm not 
> thinking of?
> 
> On Mon, Dec 7, 2015 at 4:45 PM, Dmitri Gribenko via swift-dev 
> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote:
> Hi everyone,
> 
> The standard library has bitPattern initializers on pointers. But we
> are missing initializers to create integers from pointers.
> 
> Someone needs to propose these APIs, walk them through
> swift-evolution, write a patch for the library and add tests.
> 
> extension UInt {
>   init<T>(bitPattern: UnsafePointer<T>) {
>     self = UInt(Builtin.ptrtoint_Word(bitPattern._rawValue))
>   }
> 
>   init<T>(bitPattern: UnsafeMutablePointer<T>) {
>     self = UInt(Builtin.ptrtoint_Word(bitPattern._rawValue))
>   }
> }
> 
> extension Int {
>   init<T>(bitPattern: UnsafePointer<T>) {
>     self = Int(Builtin.ptrtoint_Word(bitPattern._rawValue))
>   }
> 
>   init<T>(bitPattern: UnsafeMutablePointer<T>) {
>     self = Int(Builtin.ptrtoint_Word(bitPattern._rawValue))
>   }
> }
> 
> https://bugs.swift.org/browse/SR-131 <https://bugs.swift.org/browse/SR-131>
> 
> Dmitri
> 
> --
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <griboz...@gmail.com 
> <mailto:griboz...@gmail.com>>*/
> _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org <mailto:swift-dev@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-dev 
> <https://lists.swift.org/mailman/listinfo/swift-dev>
> 
>  _______________________________________________
> swift-dev mailing list
> swift-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

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

Reply via email to