Sync behaviors of Foundation between Darwin and Linux one

I found the difference of behavior of Foundation between Darwin and Linux. (and fixed it)

But it seems there may be others like this. I think this problem is very important to encourage Server Side Swift.

So is there any plan to sync Foundation behavior of Darwin and Linux?
(e.g. Sync test cases automatically. )

If not yet, I want to discuss this :)

To offer more specific examples here, we have written a few CLIs (probably less than 10k LOC combined) that we run on developer macOS machines and also on Linux CI machines. In our experience we've discovered dozens of issues (here are some SR-8259, SR-7039, SR-6687, SR-10277, SR-10206, 1944, SR-9303) where the Swift compiler, or corelibs libraries have differed enough to cause issues for us. In some cases they have been particularly subtle as well.

I haven't spent time on the Swift server frameworks, but if I were, I definitely wouldn't feel comfortable testing on macOS, and deploying to Linux unless I had a extremely comprehensive test suite.

1 Like

I think the main focus right now is to implement the features that are missing from Linux Foundation. Once that’s done there will surely be more focus on fixing the bugs in behavioral differences.

@Moximillian IMO, defining the behavior of feature by test cases will be helpful in implementing them. And I think all missing feature won't be implemented because usually Linux feature is implemented after Darwin one.

But I know corelib-foundation uses NSUnimplemented which internally uses unrecoverable error fatalError and we need to avoid to run test for the features which use NSUnimplemented.