leiningen

N.B. The maintainers are on #leiningen on Libera chat IRC. Go there for direct support/bug reports.
2019-08-23T00:11:51.101600Z

is it possible for uberjar aot to compile java11 class files instead of java8 like it does now?

2019-08-23T00:19:39.102500Z

@danboykis maybe comes down to what clj version you are using

2019-08-23T00:20:07.103100Z

@mikerod 1.10.1

2019-08-23T00:22:18.103500Z

Why do you need it to compile higher version classfiles?

2019-08-23T00:22:31.104Z

Newer jvm can run older classfile version.

2019-08-23T00:22:47.104500Z

But I think this is likely more of a #clojure question

2019-08-23T00:23:05.105100Z

Don’t think anything lein can do specifically. Unless I’m not thinking of something.

2019-08-23T00:25:02.105500Z

@mikerod no reason, I was just curious

2019-08-23T00:26:30.106Z

Maybe related

2019-08-23T00:26:34.106200Z

For background.

2019-08-23T00:56:13.106700Z

i think you're right, clojure doesn't build anything beyond 1.8

2019-08-23T00:56:21.106900Z

it has nothing to do with lein

2019-08-23T01:08:18.107400Z

Yeah. It embeds the asm bytecode emitter.

2019-08-23T01:08:23.107700Z

And I think has a fixed target

alexmiller 2019-08-23T02:31:50.107900Z

It does

✅ 1
alexmiller 2019-08-23T02:32:44.108800Z

So rolling back to the original question, the answer to java 11 class files is no

🎉 1
alexmiller 2019-08-23T02:33:32.109500Z

Clojure (1.9-1.10.1) emits only java 8 class files

👍 2
2019-08-23T17:28:10.111500Z

since hooks are deprecated what is the recommended replacement(s)?

2019-08-23T18:01:09.111900Z

@danboykis I think https://github.com/technomancy/leiningen/issues/2387#issuecomment-359265031 is relevant and some other related stuff

2019-08-23T18:01:27.112400Z

It’s more that it is a brittle/fragile thing to do - and lein shouldn’t go out of it’s way to explicitly support it

2019-08-23T18:01:48.112900Z

I believe that’s the idea. You can still use hooks yourself from within a plugin, but it’s definitely better to try to avoid it if you can get the functionality another way

2019-08-23T18:02:00.113200Z

this is my take on it. I don’t think there is an easy answer to what “replaces” it

2019-08-23T18:02:53.114400Z

sometimes the reason you use a hook is because the lib/api you are using doesn’t give you enough “granularity” (or should I say “hooks”) to tweak the behavior you want. in that case, perhaps try using the lib different, not at all/an alternative impl, or ask for changes?

2019-08-23T18:03:23.114900Z

hooks seem to me to be a somewhat structured way to alter-var-root on arbitrary internal impl details of libs - aka monkey patching