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 > <[email protected]> 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 > <[email protected] <mailto:[email protected]>> 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 <[email protected] > <mailto:[email protected]>>*/ > _______________________________________________ > swift-dev mailing list > [email protected] <mailto:[email protected]> > https://lists.swift.org/mailman/listinfo/swift-dev > <https://lists.swift.org/mailman/listinfo/swift-dev> > > _______________________________________________ > swift-dev mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-dev
_______________________________________________ swift-dev mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-dev
