Skip to content
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

jni_glue::java! macro checklist #55

Open
7 of 13 tasks
MaulingMonkey opened this issue Dec 26, 2019 · 0 comments
Open
7 of 13 tasks

jni_glue::java! macro checklist #55

MaulingMonkey opened this issue Dec 26, 2019 · 0 comments
Labels
bug Something isn't working enhancement New feature or request macros

Comments

@MaulingMonkey
Copy link
Owner

MaulingMonkey commented Dec 26, 2019

Before Initial Commit

  • Require unsafe keyword on impl since it's not yet 100% sound
  • Add panic catcher to avoid unwinding rust panics into JNI
  • Document that mismatched return types can cause soundness issues (not part of JNI sig)
  • Document that mismatched argument types shouldn't cause soundness issues (part of JNI sig)
  • Document that mismatched static can cause soundness issues

Fix missing API bits

  • Implement type that Rust code can convert errors into to throw Java Exceptions
  • Allow unsafe keyword on fns?
  • Improve error reporting with the compiler_error! macro trick
  • native constructor support
  • Eat/ignore access specifiers, override attributes, ...?

Make API sound

  • Find/parse corresponding .class info
  • Verify java metadata via autogenerated tests and macro checks
  • Document edge cases (custom JVM with bad symbols, mismatching .jar s, etc.)
@MaulingMonkey MaulingMonkey added bug Something isn't working enhancement New feature or request labels Dec 26, 2019
MaulingMonkey added a commit that referenced this issue Dec 27, 2019
Still lots of work to be done.  See:
- Old panic! based error reporting
- Unsafe keywords as used by example-jni-java
- Missing class/object support for function arguments, return values
- Other issues listed in #55
- Other various // TODO s littered throughout the code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request macros
Projects
None yet
Development

No branches or pull requests

1 participant