leiningen

N.B. The maintainers are on #leiningen on Libera chat IRC. Go there for direct support/bug reports.
gklijs 2021-02-25T05:29:20.013500Z

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.

quoll 2021-02-25T15:52:45.014100Z

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

quoll 2021-02-25T15:53:31.014300Z

I’m doing the Haskell heap tutorial

quoll 2021-02-25T15:57:14.016800Z

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

ljosa 2021-02-25T19:50:58.021300Z

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?

alexmiller 2021-02-25T20:04:24.022400Z

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