-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[SR-88] Fixing and reapplying stdlib mirror API changes #1058
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
I forgot to mention that I'll squash/rebase once I verify tests are working and get the go-ahead. |
7167c34
to
88b828b
Compare
Tests pass on both OS X and Ubuntu. |
88b828b
to
c8e6b50
Compare
Migrate mirrors to use CustomReflectable API, rewrite dump() ...and there was much rejoicing.
Did you intend to squash these? |
Yeah, eventually. Wanted to give people the chance to look at the changes first. Austin
|
on Fri Jan 22 2016, Austin Zheng <notifications-AT-i.8713187.xyz> wrote:
@egranata, are you still relying on this optimization? -Dave |
on Fri Jan 22 2016, Austin Zheng <notifications-AT-i.8713187.xyz> wrote:
I must be missing something. I don't see anything in your fixes that -Dave |
Sure. What I meant to say was that the code in my original PR was building on my machine because it was based on a commit that was about 50 commits (a few day's worth) behind where
Let me know if that was any clearer. Thanks! Austin
|
c8e6b50
to
8d868da
Compare
It’s a little clearer, but letting us look at the un-squashed commits is only useful for us in tracking that down if you separate the changes that actually fixed breakage from the other stuff. And my point is, looking at ed69418, I can’t tell what made the difference. |
Okay, that makes sense. I'll squash the commits this afternoon. The breakage-fixing 'change' was changing the Mirrors to not use the helper collections that were deleted in that commit. Sorry for not making that clearer. Sent from my iPhone
|
I just wanted to know if there's anything I can do to help push this forward. If not, I can ask again in a few days. |
@austinzheng Could you resolve conflicts with the master branch? |
I'll do that right now; however, I think the points @dabrahams still need to be addressed. Let me know if you have questions.
|
Yes, we still need to decide what to do with that optimization in Dictionary's mirror. I know it is important for the debugger, I want to read the new code and consider how it would perform. |
8d868da
to
d5d66c7
Compare
I squashed and rebased onto latest master. I'm running tests right now just to verify nothing is broken. Once you've decided what you want to do with Dictionary's mirror, let me know. Also, as I mentioned in one of the line comments(?), the collections now use the unlabeledChildren: constructor for |
As of now, all tests on this branch pass on both OS X and Ubuntu. |
return .View(NSImage()) | ||
} else { | ||
_NSViewQuickLookState.views.insert(self) | ||
let result : PlaygroundQuickLook |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't put a space before the colon in variable declarations.
a4114e2
to
9ab9d4f
Compare
Changes: - Reverted commit reverting original SR-88 commit - Removed mirror children helper collections and related code - Rewrote some tests to keep them working properly - Wrote two more tests for the three pointer APIs to ensure no crashes if created using a value > Int64.max This reverts commit 8917eb0.
9ab9d4f
to
10d5b23
Compare
All tests now pass on OS X. Linux pending... |
Unfortunately I have to head out now, but if you trigger the CI to run on Linux it should almost certainly pass. Let me know if you have any questions. |
@swift-ci Please test Linux platform |
1 similar comment
@swift-ci Please test Linux platform |
@austinzheng This is amazing work, thank you! |
Yes, @austinzheng, thank you again for taking this on! |
I'm glad it's finally in! Fingers crossed that it won't break anything 😬. |
It looks like the reflection tests are breaking in the asserts build. You can revert my revert commit below and provide a fix on top of that. commit 182bb7f (HEAD -> master, public/master, public/HEAD)
|
The key to reproducing the failures is probably --swift-stdlib-build-type=Debug --swift-stdlib-enable-assertions=true |
Thanks for bringing this to my attention; I'll take a look tonight. Are Are there any other configs I can test against before submitting a fix? Austin On Wed, Jan 27, 2016 at 11:02 AM, atrick [email protected] wrote:
|
There were two kinds of failures that persisted after this commit:
Both the release and debug stdlib build with asserts have the same failures: build-script --preset=buildbot,tools=RA,stdlib=DA I'm guessing the relevant build-script option is --swift-stdlib-enable-assertions=true
build-script --debug-swift --debug-lldb --test -- --skip-test-cmark --skip-test-swift --lldb-use-system-debugserver Timeout in TestREPLQuickLookObject.REPLQuickLookTestCase.testREPL It won't be clear whether this is related until my revert passes, but it seems likely. |
Hi @atrick, I can't build the project using the |
That should be sufficient, but if you can just define some dummy variables like this: build-script install_destdir=$install_dir installable_package=$build_name.tar.gz |
Hi @atrick, I checked out the latest master, updated my dependencies, backed out your commit, and ran the tests on my machine using the following command:
However, the unit test suite appears to complete successfully for me. (OS X 10.11.1, MBP 15") I'm going to try defining the dummy vars and running the preset. |
The linux test failure, Timeout in TestREPLQuickLookObject.REPLQuickLookTestCase.testREPL, went away after reverting this pull request. It will take the bots a long time to verify that the Reflection tests are fixed. Meanwhile I'm also trying to reproduce them locally. |
@atrick Is this failure only on Linux? Do you know if it passed on OS X? |
I think the failure was on iphonesimulator-i386. You can run tests with |
Excellent, I'm running the test suite now. I wonder if my "bigger than For future reference, what's the maximal set of tests I should run before Thanks, On Wed, Jan 27, 2016 at 2:02 PM, Dmitri Gribenko [email protected]
|
Usually |
Alright, that's super helpful. I see the i386 breaking behavior; I can fix it when I get back tonight. One question for now: I thought UInt and Int were always 64-bit, as per the Austin On Wed, Jan 27, 2016 at 2:12 PM, Dmitri Gribenko [email protected]
|
Thanks!
Yes, that's correct -- Int and UInt are of the same size as the platform word (32 bits on i386 iphonesimulator). |
Sorry, the LLDB failure is not linux specific. The timeout on TestREPLQuickLookObject reproduces on OSX. build-script --debug-swift --debug-lldb --test -- --skip-test-cmark --skip-test-swift --lldb-use-system-debugserver === BUILD TARGET repl_swift OF PROJECT lldb WITH CONFIGURATION CustomSwift-Debug === Timeout in TestREPLQuickLookObject.REPLQuickLookTestCase.testREPL @scallanan I haven't reproduced this myself yet. If you have trouble, maybe someone from lldb can help. |
This PR contains both a commit reverting the revert to the mirrors commit (original pull request here), as well as another commit containing fixes and changes. I took the opportunity to remove some additional code.
I'm working on running the test suite (unit and validation tests) on both OS X and Ubuntu, and will comment when they are done.
I do have two comments:
Let me know if there are any questions. Thanks again!