...
- Interop
- To consume a Java API
- Concrete derivation (gen-class)
- Naming/packaging conventions
- To expose an API to Java code
- deftype/record/protocol/interface
- Deployment environments
- Special classloaders, e.g. OSGi, Eclipse
- To consume a Java API
- Application delivery
- Main method (gen-class)
- Mitigated by "-m" option to clojure.main
- Bytecode post-processing
- Android/Dalvik
- Faster startup
- Only an issue in constrained environments like Android
- Hide source code from consumers
- Main method (gen-class)
- Vet reflection warnings
- Syntax check
- Not necessary, but still a common use case
...
- Just some things
- For the Interop case
- Not currently supported
- Everything
- For the "Application delivery" and , "Syntax check", and "reflection warnings" cases
- Currently supported by
clojure.core/compile
...