mjtsai + jckarter   400

Twitter
The brilliance of Rust using “fn” as a keyword is that you can pronounce it as “fun” when you’re in a good mood or “effin’” when you’re not

— Joe Groff (@jckarter) June 20, 2018
FavoriteTweet  jckarter 
7 hours ago by mjtsai
Twitter
Who wore it better pic.twitter.com/DY52WfEnan

— Joe Groff (@jckarter) June 18, 2018
FavoriteTweet  jckarter 
2 days ago by mjtsai
Twitter
With dynamically sized values you could conceivably also support unboxed recursive algebraic data types without requiring explicit indirection like Swift and Rust do

— Joe Groff (@jckarter) June 18, 2018
FavoriteTweet  jckarter 
2 days ago by mjtsai
Twitter
Most typed high level languages assign a fixed layout to all instances of a type, so when you naively build a data structure like [String: String], the elements get boxed. A model that allowed dynamically sized values to be passed around without boxing would be interesting

— Joe Groff (@jckarter) June 18, 2018
FavoriteTweet  jckarter 
2 days ago by mjtsai
Twitter
I think there’s an interesting underexplored frontier for locality-friendly high level language implementation, dynamically manipulating unboxed values instead of representing everything as graphs of objects

— Joe Groff (@jckarter) June 18, 2018
FavoriteTweet  jckarter 
2 days ago by mjtsai
Twitter
Pointers are big, unsafe, and bad for locality, and @FlohOfWoe has a great post here about the many benefits of using non-pointer handles and centrally-managed memory as an alternative https://t.co/F5cNvkj1w9

— Joe Groff (@jckarter) June 18, 2018
FavoriteTweet  jckarter 
2 days ago by mjtsai
Twitter
Whenever I feel down about horrible bugs we have to maintain as features forever for compatibility, OS/2 Museum is there with the story of an even worse legacy bug in x86 https://t.co/yJXOtgfwla

— Joe Groff (@jckarter) June 15, 2018
FavoriteTweet  jckarter 
5 days ago by mjtsai
Twitter
What’s the longest unbroken chain of keywords that makes a valid Swift statement? Best I got is

for case let false as Any in false where false is Any {

— Joe Groff (@jckarter) June 15, 2018
FavoriteTweet  jckarter 
5 days ago by mjtsai
Twitter
People who are really serious about programming languages should make their own IDE

— Joe Groff (@jckarter) June 14, 2018
FavoriteTweet  jckarter 
5 days ago by mjtsai
Twitter
If you happen not to like Swift and want a successor to ObjC, then richer semantic information in the SDK makes interop with *any* other language easier too

— Joe Groff (@jckarter) June 14, 2018
FavoriteTweet  jckarter 
6 days ago by mjtsai
Twitter
You can say those features only got added for Swift interop, but they’ve been longstanding feature requests, and Swift was a forcing function to make Apple do the legwork to really adopt those features in the SDK

— Joe Groff (@jckarter) June 14, 2018
FavoriteTweet  jckarter 
6 days ago by mjtsai
Twitter
Saying that Swift is the work of one compiler engineer who doesn’t know how to write apps discredits the contributions of all the experienced application, framework and runtime engineers within Apple who also helped shape Swift and don’t know how to write apps

— Joe Groff (@jckarter) June 12, 2018
FavoriteTweet  jckarter 
8 days ago by mjtsai
Twitter
ObjC gets new features too! https://t.co/CQKEt6YA2F

— Joe Groff (@jckarter) June 7, 2018
FavoriteTweet  jckarter 
13 days ago by mjtsai
Twitter
CTOs, when making technical choices, remember that macOS has supported tcl/tk longer than:

- Cocoa-Java
- PowerPC
- i386
- Carbon
- Quicktime
- OpenGL

Just sayin'

— Joe Groff (@jckarter) June 5, 2018
FavoriteTweet  jckarter 
15 days ago by mjtsai
Twitter
Like I think a lot of the confusion around dispatch could be avoided if overloading wasn't conflated with dispatch. Methods in Swift have namespaced and typed selectors, and name lookup picks the "best" selector for the context. Given a selector, dispatch is easier to understand

— Joe Groff (@jckarter) June 5, 2018
FavoriteTweet  jckarter 
15 days ago by mjtsai
Twitter
Love the new finder's rich metadata support pic.twitter.com/M49jpzqzz4

— Joe Groff (@jckarter) June 4, 2018
FavoriteTweet  jckarter 
16 days ago by mjtsai
Twitter
For me, more exciting than any new feature in Swift 4.2 is the huge amount of work that’s gone into making tools like lldb work better with Swift https://t.co/FIlBT6lLFq

— Joe Groff (@jckarter) June 1, 2018
FavoriteTweet  jckarter 
19 days ago by mjtsai
Twitter
Developers in interpreted languages spend 100% less time fixing compiler errors

— Joe Groff (@jckarter) May 28, 2018
FavoriteTweet  jckarter 
22 days ago by mjtsai
Twitter
You can write a CustomReflectable conformance to customize Mirror behavior for your own types.

— Joe Groff (@jckarter) May 25, 2018
FavoriteTweet  jckarter 
25 days ago by mjtsai
Twitter
If you try to comment or edit an issue on https://t.co/iNjGSLeCag and enter ^K, then it inserts some wiki markup nonsense instead of killing the end of the line.

— Joe Groff (@jckarter) May 23, 2018
FavoriteTweet  jckarter 
28 days ago by mjtsai
Twitter
"So buggy" is a poor characterization. Large programs rely on a large swath of the underlying OS, including incidental or buggy behavior, often because there's no other option. This is one way of keeping compatibility while moving the platform forwardhttps://t.co/rIIaG52cLg

— Joe Groff (@jckarter) May 21, 2018
FavoriteTweet  jckarter 
4 weeks ago by mjtsai
Twitter
A nice short post with pictures illustrating many of the issues optimizing high performance code for modern CPU architectures https://t.co/4I96QZTRnT

— Joe Groff (@jckarter) May 21, 2018
FavoriteTweet  jckarter 
4 weeks ago by mjtsai
Joe Groff on Twitter: "It’s still probably a ways down the road, but infrastructure work has been done at the LLVM level in this direction. The new ORC JIT allows for on-demand code generation and concurrent optimization… https://t.co/DRe0HkY21w"
It’s still probably a ways down the road, but infrastructure work has been done at the LLVM level in this direction. The new ORC JIT allows for on-demand code generation and concurrent optimization

— Joe Groff (@jckarter) May 1, 2018
FavoriteTweet  jckarter 
7 weeks ago by mjtsai
Joe Groff on Twitter: "Millennials: I will never be able to own a house Post-millennials: I will never be able to own a graphics card"
Millennials: I will never be able to own a house
Post-millennials: I will never be able to own a graphics card

— Joe Groff (@jckarter) May 1, 2018
FavoriteTweet  jckarter 
7 weeks ago by mjtsai
Joe Groff on Twitter: "Alternatively, instead of using a different language without a build phase, we should make it so that Swift doesn’t require a build phase… https://t.co/fTj4BRLrkN"
Alternatively, instead of using a different language without a build phase, we should make it so that Swift doesn’t require a build phase

— Joe Groff (@jckarter) May 1, 2018
FavoriteTweet  jckarter 
7 weeks ago by mjtsai
Joe Groff on Twitter: "My "favorite" case of this is JIRA hijacking ^K and other Emacs key bindings. Does this prevent that as well?… "
My "favorite" case of this is JIRA hijacking ^K and other Emacs key bindings. Does this prevent that as well?

— Joe Groff (@jckarter) April 30, 2018
FavoriteTweet  jckarter 
7 weeks ago by mjtsai
Joe Groff on Twitter: "If there's no willSet and oldValue isn't used, then we really ought to do the update in-place. It's somewhere on the long todo list…… https://t.co/7cLonLObt7"
If there's no willSet and oldValue isn't used, then we really ought to do the update in-place. It's somewhere on the long todo list…

— Joe Groff (@jckarter) April 25, 2018
FavoriteTweet  jckarter 
7 weeks ago by mjtsai
Joe Groff on Twitter: "public required override convenience init… "
public required override convenience init https://t.co/5uW6IEnWy2

— Joe Groff (@jckarter) April 24, 2018
FavoriteTweet  jckarter 
8 weeks ago by mjtsai
Joe Groff on Twitter: "Getting devs fresh out of school is also a great way to instill in them harmful and exploitative work norms, before they have a chance to know any different… https://t.co/aKwv7zzGlz"
Getting devs fresh out of school is also a great way to instill in them harmful and exploitative work norms, before they have a chance to know any different

— Joe Groff (@jckarter) April 23, 2018
FavoriteTweet  jckarter 
8 weeks ago by mjtsai
Joe Groff on Twitter: "I liked the way @slava_pestov implemented this in the factor debugger, where "stepping into" a closure expression put a breakpoint on its entry point… https://t.co/tDIKVKazpR"
I liked the way @slava_pestov implemented this in the factor debugger, where "stepping into" a closure expression put a breakpoint on its entry point

— Joe Groff (@jckarter) April 20, 2018
FavoriteTweet  jckarter 
8 weeks ago by mjtsai
Joe Groff on Twitter: "Useless Swift tricks: use recursive protocol constraints to build type-level DFAs [8GB of RAM warning]: https://t.co/7HxK1A9jHD"
Useless Swift tricks: use recursive protocol constraints to build type-level DFAs [8GB of RAM warning]: https://t.co/7HxK1A9jHD

— Joe Groff (@jckarter) April 20, 2018
FavoriteTweet  jckarter 
8 weeks ago by mjtsai
Joe Groff on Twitter: "Good news! In Swift 4.2 you won’t have to store constants in a ‘var’ just to use withUnsafePointer on them anymore https://t.co/41UGmgwGuO"
Good news! In Swift 4.2 you won’t have to store constants in a ‘var’ just to use withUnsafePointer on them anymore https://t.co/41UGmgwGuO

— Joe Groff (@jckarter) April 19, 2018
FavoriteTweet  jckarter 
8 weeks ago by mjtsai
Joe Groff on Twitter: "I don’t think it’s the users that need sand boxing per se, it’s unscrupulous developers that need regulation so that users can make informed choices what happens on their computer. It’s too easy on contemporary platforms, ar
I don’t think it’s the users that need sand boxing per se, it’s unscrupulous developers that need regulation so that users can make informed choices what happens on their computer. It’s too easy on contemporary platforms, arguably even iOS, for software to do bad things silently

— Joe Groff (@jckarter) April 16, 2018
FavoriteTweet  jckarter 
9 weeks ago by mjtsai
Joe Groff on Twitter: "We haven’t implemented bit packing for products. Tuples furthermore are abstraction limited by being generic, and value witnesses can’t handle overlapping storage… https://t.co/9GiUEHcOkt"
We haven’t implemented bit packing for products. Tuples furthermore are abstraction limited by being generic, and value witnesses can’t handle overlapping storage

— Joe Groff (@jckarter) April 13, 2018
FavoriteTweet  jckarter 
9 weeks ago by mjtsai
Joe Groff on Twitter: "If you somehow managed to pass nil as the 'self' argument to the method (maybe due to mis-annotated ObjC code somewhere), then you'd get objc_msgSend's nil-swallowing behavior, and Swift would defensively bridge the nil return value
If you somehow managed to pass nil as the 'self' argument to the method (maybe due to mis-annotated ObjC code somewhere), then you'd get objc_msgSend's nil-swallowing behavior, and Swift would defensively bridge the nil return value to an empty string. Could that be?

— Joe Groff (@jckarter) April 12, 2018
FavoriteTweet  jckarter 
9 weeks ago by mjtsai
Joe Groff on Twitter: "@graydon_pub once pointed out to me that the collaboration problem makes pretty much every app into a DVCS problem. IIRC he had some references to projects that were trying to factor out that framework without going the “literally
@graydon_pub once pointed out to me that the collaboration problem makes pretty much every app into a DVCS problem. IIRC he had some references to projects that were trying to factor out that framework without going the “literally use .git as your document format” route

— Joe Groff (@jckarter) April 7, 2018
FavoriteTweet  jckarter 
10 weeks ago by mjtsai
Joe Groff on Twitter: ""We've announced a new line of powerful laptop processors" That's good! "The processors come with a powerful curse" That's bad "The processors have six cores" That's good "The processors still don't support LPDDR4" ... "That's bad""
"We've announced a new line of powerful laptop processors"
That's good!
"The processors come with a powerful curse"
That's bad
"The processors have six cores"
That's good
"The processors still don't support LPDDR4"
...
"That's bad"

— Joe Groff (@jckarter) April 3, 2018
FavoriteTweet  jckarter 
11 weeks ago by mjtsai
Joe Groff on Twitter: "We only ever bridge using immutable objects. Someone could lie in their NSArray subclass and produce a thread unsafe object on -copy, but you shouldn’t do that… https://t.co/j5wmWOTTkJ"
We only ever bridge using immutable objects. Someone could lie in their NSArray subclass and produce a thread unsafe object on -copy, but you shouldn’t do that

— Joe Groff (@jckarter) March 19, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "It’s thread safe to read and copy but not write (modulo bugs). It should be as thread safe as an int variable… "
It’s thread safe to read and copy but not write (modulo bugs). It should be as thread safe as an int variable

— Joe Groff (@jckarter) March 19, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Nice touch in iOS 11 onboarding: it now offers to install an update for you if it's necessary to restore your backup instead of making you install it yourself then reset"
Nice touch in iOS 11 onboarding: it now offers to install an update for you if it's necessary to restore your backup instead of making you install it yourself then reset

— Joe Groff (@jckarter) March 10, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Thanks to @lorentey, Swift now uses much higher-quality hashing with a per-process seed! https://t.co/ixdQYj8ire"
Thanks to @lorentey, Swift now uses much higher-quality hashing with a per-process seed! https://t.co/ixdQYj8ire

— Joe Groff (@jckarter) March 10, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "The -removeObjects*: methods on NSMutableArray have been doing the O(n^2) thing for decades before anyone noticed… "
The -removeObjects*: methods on NSMutableArray have been doing the O(n^2) thing for decades before anyone noticed

— Joe Groff (@jckarter) March 8, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Yeah, (x) goes through the print-anything path for x, which hasn't really been optimized… "
Yeah, \(x) goes through the print-anything path for x, which hasn't really been optimized

— Joe Groff (@jckarter) March 7, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "[Pitch] Suppress compiler errors with wellActually { ... }"
[Pitch] Suppress compiler errors with wellActually { ... }

— Joe Groff (@jckarter) March 6, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "ChrisL is really a plant from the C++ committee, ensuring compilers are doomed to be written in C++ forever… "
ChrisL is really a plant from the C++ committee, ensuring compilers are doomed to be written in C++ forever

— Joe Groff (@jckarter) March 6, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "An underexplored idea in tooling: while you want to succeed fast, if you fail, you can save the user time by doing expensive work to figure out why. Quadratic/cubic/exponential searches you wouldn’t want on your critical path migh
An underexplored idea in tooling: while you want to succeed fast, if you fail, you can save the user time by doing expensive work to figure out why.

Quadratic/cubic/exponential searches you wouldn’t want on your critical path might be acceptable to find fixes for errors

— Joe Groff (@jckarter) March 6, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Steve Jobs: the original Hackernews commenter… "
Steve Jobs: the original Hackernews commenter pic.twitter.com/56RpbzX8Mq

— Joe Groff (@jckarter) March 6, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Yeah, even though whitespace isn't formally significant most people well-indent their code in practice. I think recent GCC uses indentation as a hint to match up imbalanced { } pairs; Clang and Swift should do the same… https://t.
Yeah, even though whitespace isn't formally significant most people well-indent their code in practice. I think recent GCC uses indentation as a hint to match up imbalanced { } pairs; Clang and Swift should do the same

— Joe Groff (@jckarter) March 4, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Even in this timeline Swift didn't start from scratch! Many of the ObjC improvements that came right before it, including ARC and literal syntax, were secretly motivated by Swift even before it was announced… https://t.co/ldksZLtf
Even in this timeline Swift didn't start from scratch! Many of the ObjC improvements that came right before it, including ARC and literal syntax, were secretly motivated by Swift even before it was announced

— Joe Groff (@jckarter) March 2, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Bets on how long until “_, _, and n other users have bookmarked this” shows up in timelines… "
Bets on how long until “_, _, and n other users have bookmarked this” shows up in timelines

— Joe Groff (@jckarter) March 2, 2018
FavoriteTweet  jckarter 
march 2018 by mjtsai
Joe Groff on Twitter: "Then: Computer science is just math, it isn't a real science Now: Our computer systems are so complex we can only understand them by scientific experimentation"
Then: Computer science is just math, it isn't a real science
Now: Our computer systems are so complex we can only understand them by scientific experimentation

— Joe Groff (@jckarter) February 28, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Maybe instead of warning on each and every use of a deprecated feature, there could be a single project-level "you're using Swift N features that are deprecated in N+1; use the migrator when you're ready to move forward" warning…
Maybe instead of warning on each and every use of a deprecated feature, there could be a single project-level "you're using Swift N features that are deprecated in N+1; use the migrator when you're ready to move forward" warning

— Joe Groff (@jckarter) February 22, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Even if the deprecation warning came later, I think it'd still have the same user impact, just later. Most users won't know a change is coming till the warning comes.… https://t.co/4XcVJh4FhN"
Even if the deprecation warning came later, I think it'd still have the same user impact, just later. Most users won't know a change is coming till the warning comes.

— Joe Groff (@jckarter) February 22, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "How can we acknowledge it more explicitly? The bar for breaking changes is already set high. We only accepted this because it was causing active ongoing harm, and even then, the existing behavior is still supported forever in 4 mode
How can we acknowledge it more explicitly? The bar for breaking changes is already set high. We only accepted this because it was causing active ongoing harm, and even then, the existing behavior is still supported forever in 4 mode.

— Joe Groff (@jckarter) February 22, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "I'd call it a bug. `lazy var` was implemented in an extremely hacky way (it really just generates a get/set), and most of its idiosyncrasies come from that… https://t.co/qFohVqGEGv"
I'd call it a bug. `lazy var` was implemented in an extremely hacky way (it really just generates a get/set), and most of its idiosyncrasies come from that

— Joe Groff (@jckarter) February 13, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Well, the other way to deal with non-ideal initialization order is to use T! types, so they can initialize to nil and Swift won't bother you about really initializing them later. If anyone bugs you about it, tell them I said it was
Well, the other way to deal with non-ideal initialization order is to use T! types, so they can initialize to nil and Swift won't bother you about really initializing them later. If anyone bugs you about it, tell them I said it was OK

— Joe Groff (@jckarter) February 12, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Why do we call ourselves "software engineers" and not "Knights who say NIH""
Why do we call ourselves "software engineers" and not "Knights who say NIH"

— Joe Groff (@jckarter) February 10, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "To be honest, our thinking was "why would anybody be using IUO *at all*". We hadn't considered the "workaround for other IUO problems" case. If your use case really is the only one, maybe we should reconsider the warning.… https:/
To be honest, our thinking was "why would anybody be using IUO *at all*". We hadn't considered the "workaround for other IUO problems" case. If your use case really is the only one, maybe we should reconsider the warning.

— Joe Groff (@jckarter) February 8, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Following the 1/2/N rule, you copied and pasted the code for the first H, right… "
Following the 1/2/N rule, you copied and pasted the code for the first H, right

— Joe Groff (@jckarter) February 7, 2018
FavoriteTweet  jckarter 
february 2018 by mjtsai
Joe Groff on Twitter: "Reminder: running 32 bit processes on a 64 bit CPU for prolonged periods can lead to burn-in of the unused high bits. Degauss your CPU regularly"
Reminder: running 32 bit processes on a 64 bit CPU for prolonged periods can lead to burn-in of the unused high bits. Degauss your CPU regularly

— Joe Groff (@jckarter) January 31, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "IIRC one of the things that made us pick Discourse is that it was supposed to have "good" email interop for people who prefer that? No idea how to get to that point though… https://t.co/lI71n6HgcP"
IIRC one of the things that made us pick Discourse is that it was supposed to have "good" email interop for people who prefer that? No idea how to get to that point though

— Joe Groff (@jckarter) January 29, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "The box you get when you turn a Swift value type into an AnyObject looks for an Equatable conformance and uses that to implement -isEqual: if available.… https://t.co/Tx1tdfhxDP"
The box you get when you turn a Swift value type into an AnyObject looks for an Equatable conformance and uses that to implement -isEqual: if available.

— Joe Groff (@jckarter) January 23, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "@nicklockwood Everything bridges to AnyObject. That shouldn’t crash, baz should end up NSNull"
Everything bridges to AnyObject. That shouldn’t crash, baz should end up NSNull

— Joe Groff (@jckarter) January 17, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "@lapcatsoftware The Swift compiler has an optimizer barrier in it for this case. If you put the result of a misannotated ObjC call directly into an Optional… https://t.co/r2jX9fBiuv"
The Swift compiler has an optimizer barrier in it for this case. If you put the result of a misannotated ObjC call directly into an Optional, it’ll handle the nil return case correctly.

— Joe Groff (@jckarter) January 13, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "@davedelong @SwiftLang Protocols with associated types are totally fixable. Just a matter of time."
Protocols with associated types are totally fixable. Just a matter of time.

— Joe Groff (@jckarter) January 12, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: "Who says Swift is a static language? With @dgregor79's recent runtime improvements, (almost) any type can be dynamically formed from a strin… https://t.co/IyYBuFmk5x"
Who says Swift is a static language? With @dgregor79's recent runtime improvements, (almost) any type can be dynamically formed from a string: https://t.co/CxI2RKG6fu

— Joe Groff (@jckarter) January 10, 2018
FavoriteTweet  jckarter 
january 2018 by mjtsai
Joe Groff on Twitter: ""How much can one banana possibly cost?" https://t.co/daGJEICNLQ"
"How much can one banana possibly cost?" pic.twitter.com/daGJEICNLQ

— Joe Groff (@jckarter) December 20, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "It has never been easier to write calendar math bugs than in C++14 https://t.co/4dgz648pqM"
It has never been easier to write calendar math bugs than in C++14 https://t.co/4dgz648pqM

— Joe Groff (@jckarter) December 19, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@mjtsai The bug is fixed. Radar for closed but Jira wasn’t updated to match."
The bug is fixed. Radar for closed but Jira wasn’t updated to match.

— Joe Groff (@jckarter) December 13, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@mjtsai @lapcatsoftware @AirspeedSwift Logging with a breakpointable symbol name (something like __SWIFT_IS_BRIDGING_DICTIONARY_WITH_DUPLICATE_KEYS__) would also allow people who… https://t.co/4fdH7K1pp4"
Logging with a breakpointable symbol name (something like __SWIFT_IS_BRIDGING_DICTIONARY_WITH_DUPLICATE_KEYS__) would also allow people who want to “crash” when they’re trying to chase down the source of the collision too.

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@lapcatsoftware @mjtsai In top-of-tree Swift (not sure about 4.0) you can also explicitly avoid problematic bridging if you immediately coerce an argument or return… https://t.co/DMHFwBH10F"
In top-of-tree Swift (not sure about 4.0) you can also explicitly avoid problematic bridging if you immediately coerce an argument or return value `as NSDictionary` at the call site. cc @pathofshrines

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@lapcatsoftware @mjtsai Another possibility is to opt out APIs from bridging when they deal with NSStrings that may significantly differ in normalization. We alrea… https://t.co/GAXHjyBL0Z"
Another possibility is to opt out APIs from bridging when they deal with NSStrings that may significantly differ in normalization.

We already know we need an opt-out mechanism for things like Core Data NSArray/NSDictionary objects where their class-iness is part of the magic

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@lapcatsoftware @mjtsai Crashing is the least bad thing to do when irreconcilable inconsistencies arise. Swift imposing this added constraint on existing APIs is wo… https://t.co/dOrsQSll6s"
Crashing is the least bad thing to do when irreconcilable inconsistencies arise. Swift imposing this added constraint on existing APIs is worth challenging.

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@mjtsai @lapcatsoftware It's supposed to crash if it detects a key collision introduced by the difference in equality model (theory being that keys differing only b… https://t.co/B3RWBwp4qH"
It's supposed to crash if it detects a key collision introduced by the difference in equality model (theory being that keys differing only by normalization form are almost always by mistake)

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@mjtsai @lapcatsoftware It's a known problem. Eventually we want to do away with the "lazy bridging", which would allow the crash to at least happen deterministical… https://t.co/tod2eJpFAy"
It's a known problem. Eventually we want to do away with the "lazy bridging", which would allow the crash to at least happen deterministically on bridging and avoid the inconsistent view of the Dictionary.

— Joe Groff (@jckarter) December 11, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
Joe Groff on Twitter: "@mpweiher @helje5 Constructors can still save references to self anywhere after self is fully initialized."
Constructors can still save references to self anywhere after self is fully initialized.

— Joe Groff (@jckarter) December 9, 2017
FavoriteTweet  jckarter 
december 2017 by mjtsai
« earlier      
per page:    204080120160

Copy this bookmark:



description:


tags: