Fork me on GitHub
#leiningen
<
2021-02-25
>
gklijs05:02:20

For lein-modules there indeed is an issue when used with Leiningen 2.9.3 or newer. That was the main reason I switched to lein-deps together with shared-deps in https://github.com/gklijs/bob2021.

quoll15:02:45

Ah… I didn’t sign up for that tutorial! 🙂

quoll15:02:31

I’m doing the Haskell heap tutorial

quoll15:02:14

It looks like the problem is in using _ to pick up versions. Is that it, or is there more? The issue I had was with leiningen complaining that CLASSPATH was defined for subprojects. I’ve submitted a PR to lein-modules to cover that case, but in the process I found that several of their regression tests fail when built with lein 2.9.5

ljosa19:02:58

I’m playing with terminal interactions (either using the Lanterna library or with homemade JNA bindings to ncurses, doesn’t matter). It would be convenient to test my code from a lein repl, but leiningen seems to interfere with the input from the terminal: • If I make and run an uberjar, it works. • With lein trampoline run, it works. • With lein run, cbreak mode doesn’t work so my code doesn’t see the input until I press return. • With lein repl, input hangs completely. Could someone tell me a little about what Leiningen does with terminal I/O? I found old references to rlwrap and jline but got lost trying to track it down in the current codebase. Is there anything else funny going on as part of the trampolining?

Alex Miller (Clojure team)20:02:24

lein typically uses one jvm that launches a second jvm so it's not surprising to me that the terminal I/O is wonky. trampoline prevents that and uses one jvm, which is probably why it works