Debugger: improving kotlin support and fixing #220
14 Feb 2019 | debugger kotlin jvmThis post continues series of debugger rework, refer to previous post. Today changes are focused around #220 Exception in Lambda transformation using modified soot:
This post continues series of debugger rework, refer to previous post. Today changes are focused around #220 Exception in Lambda transformation using modified soot:
A struct in the C is a composite data type placed under one name in a block of memory, allowing the different variables to be accessed via a single pointer wiki.
The Bro Java to Native Bridge supports structs data type. And there are several scenarios how they are used:
Experiment with LLVM7 had been started. Current version of LLVM used is 3.6. Version 7 itself will not introduce any significant improvement for RoboVM compiler so far. Goal for this activity is to refresh dependencies code base.
Source code of all changes is stored in separate branch dkimitsa/robovm/llvm_70.
Very brief: LLVM library code compiles but nothing was running yet.
All these changes brought LLVM 7 code into project and now its possible to compile RoboVM compiler code.
Things to do(high level overview):
UPDATE:
As result of testing rules_apple was wrong and Apple reject such binaries.
In general it would be enough just tp fix issue introduced in PR340 but bitcode strip andSwiftSupport/iphoneos/
will also stay as part of this PR.
Starting from Xcode 10 ARM64E arch has to be stripped from included framworks as this caused Invalid Swift Support
at Apple side. There was a fix for it but sadly there was no feedback and another was introduced during the fix. As result investigation continue with Eric Nondahl report and fix is ongoing (not confirmed yet).
To fix this issue PR346 is created and it introduces following changes:
SwiftSupport/
was stripped from ARM64E arch but shell not be touched at all;SwiftSupport/iphoneos/
same as XCode does;stripArchs
configuration option that was introduced in PR340. It was removed.Solution is in progress, please report to gitter channel for any issue found.
AltPods were update to v1.1.0-SNAPSHOTS. Changes include:
These pods were pushed to https://oss.sonatype.org/content/repositories/snapshots
maven repo under 1.1.0-SNAPSHOTS
version.
Source code @github
Updates are not tested yet, please open issue if bug found.
NB: AltPods – are robopods kept at my personal standalone repo. This is done to prevent main robopods repo from turning into code graveyard. As these pods have low interest of community and low chances to be updated.
bro-gen received several updates and new features during handling iOS12 bindings, mostly fixes but there are new ones. All changes are pushed to github.
Whats new:
User pjwj
reported problem when he was trying to use ARKit (first one?):
Values in this matrix are not as I expect them to be, as translation components are very small (for example x*10^-35). Therefore virtual objects I’m adding to the AR scene are always positioned close to the origin.
Quick investigation shown that RoboVM is not able to handle vector data types such as simd_float4x4
(mapped to MatrixFloat4x4
in RoboVM) at compiler level. As result all vector data is passed incorrectly.
Investigation and fix is bellow.
This tutorial mostly copies old one, please refer to it for more details.
It cover quick binding of LGSideMenuController.
While testing binding of Network.framework
there were several discoveries:
copy
when binding function. It will crash during compilation.Details and workarounds bellow.
Follow up to issue #336: Could not find Java class corresponding to Objective-C class: WKNSURLAuthenticationChallenge.
Short story
WKWebView passes instance of internal/unexposed class WKNSURLAuthenticationChallenge
as parameter instead of expected NSURLAuthenticationChallenge
, and WKNSURLAuthenticationChallenge
doesn’t extends from expected type.
Why it works? Because WKNSURLAuthenticationChallenge
is NSProxy.
Long story