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
[TIMOB-17892] iOS: Update Titanium to use Apple's JavaScriptCore that ships with iOS. #6450
Conversation
Fucking crazy excellent work! :) |
@matt-langston This is really good work and the changes are a lot less invasive than I thought they would be. There are obvious great opportunities to moving to this library once we can. I had discussed with both @ingo and @negupta (and @vishalduggal) yesterday my reluctance to make this change in 3.5. However, looking at the PR, I would be willing to reconsider and support this with the following conditions below. @ingo and @negupta will need to endorse this as well (and they may have their own conditions/concerns I've missed). I would also like to have @vishalduggal sign off on this change and be comfortable with the plan. Here are my comments and requests for this PR specifically. These are conditions for this merging in 3.5 release. If we cannot satisfy all of these conditions, let's wait to merge this until after 3.5 is out in a subsequent 3.5.1 release (I would still request the same conditions regardless of the release). I would like this not to be the default library when building your app. I would like the following to happen before you can use this library:
I think we can ask developers to live without profiler and debugger initially when building with the library (and we'll fall back to our libJSCore to do that if you run either of these as mentioned above) until we can officially support them with the new library and tools. The plan would be that we would ask developers (as part of the release) to try switching to this library (with instructions how to enable) and report any issues (and success!). Assuming all goes well for awhile, we would then deprecate libTiCore in 3.6 (that would simply mean making Apple JavaScriptCore default and libTiCore optional) and then removing it entirely in 3.7. (Release numbers subject to change dependent on when it gets introduced and when feedback is meaningful enough to warrant moving to it as default). |
OK, I spoke with Neeraj and I think we have a plan. This PR will merge after 3.5 since we are code complete today and we are trying to get this release out ASAP because of 64-bit requirement from Apple. This PR will merge after that and be available in subsequent release. |
any status on this? |
Bump |
+1 |
4 similar comments
+1 |
+1 |
+1 |
+1 |
+2 |
See this: https://twitter.com/sebmarkbage/status/575059848083058688 |
we have a ton of motivation, just right now trying to contend with a few technical issues (like debugger, etc) before we can merge this. this is VERY Important to us we just need to complete some of stuff quickly before we can |
This PR was a prototype and was not merged, but a PR based on this work was merged in as part of https://jira.appcelerator.org/browse/TIMOB-17892. Please test this as part of the 4.1.0 master branch. |
DO NOT MERGE BEFORE PEER REVIEW
This PR updates the iOS Titanium SDK to use the JavaScriptCore that Apple ships with iOS. As such, I have removed libTiCore.a and all references to tijscore from the Titanium SDK (i.e. project files, SCons, cli build hooks, etc.) since Apple's JavaScriptCore.framework provides this functionality.
This PR resolve issues pertaining to TIMOB-11093, particularly the recent crashers TIMOB-18137, TIMOB-18135 and TIMOB-18118. It can also resolve TIMOB-18131 quite easily (i.e. the "missing stack trace info" problem - see screenshots below) but I did not want to pursue further development on this effort without peer review and critical feedback on this "Apple JavaScriptCore" approach.
A few notes:
A few screenshot that demonstrate the power (and simplicity) of using Apple's WebInspector to debug an iOS Titanium application: