Helpful Swift Trick #1 – withoutActuallyEscaping(_:do:)

Within the Swift Foundation Library there exists a function called withoutActuallyEscaping(_:do:) that has, at least for me, become one of those hidden gems that is extremely useful for things beyond its original intention. As it's documentation states: Allows a nonescaping closure to temporarily be used as if it were allowed to escape.Apple Documentation - Swift … Continue reading Helpful Swift Trick #1 – withoutActuallyEscaping(_:do:)

A Better RegularExpression

As promised a while ago I've sat down and hammered out a better replacement for Swift's NSRegularExpression class. As I said then, NSRegularExpression is not actually a Swift class but rather an Objective-C class that has been bridged over to Swift via Swift's excellent ability to interface with C, C++, and Objective-C libraries directly. But … Continue reading A Better RegularExpression

Scripting with Swift

Did you know that, just like Python, Bash scripts, etc., you can run a Swift source file right from the command-line as if it was an already compiled executable? You betcha! 😎 The Swift REPL program honors the SHEBANG line in a Swift source file. #!/usr/bin/swift import Foundation print("") print(" Int8 - size: \(MemoryLayout<Int8>.size); stride: … Continue reading Scripting with Swift

Avoiding a Swift NSRegularExpression Pitfall

Until Swift gets a native regular expression class of it's own we are stuck with the Objective-C version - NSRegularExpression. The Objective-C version is very capable and works very well but it's important to remember that it is working on Objective-C NSStrings which, unlike Swift's native Strings, are based on the UTF-16 encoding. What this … Continue reading Avoiding a Swift NSRegularExpression Pitfall

Fastest Way To Get The Time

So, for my 6502/6510 emulator project I've been trying to figure out the best (read that, "fastest") way to get the time with nanosecond resolution. I need this because the North American version of the Commodore 64 ran at 1.02MHz (1,022,727Hz) and so that means the clock "ticks" every 977.8 nanoseconds. And that's just for … Continue reading Fastest Way To Get The Time