Hey,
I've created a
new branch/ref with some additional rewrite/changes I made.
Additionally, all was rebased on current master.
The main difference is that I changed the named parameters to use *ear-muffed* syntax...
...an idiom in Clojure for thread local dynamically bound variables, which named parameters are.
This way they don't conflict with the old/original lexically scoped/captured parameters.
Therefore now the named parameters could be exported, and directly accessed from the module.
Regarding, that vague loopy behaviour... I am not sure if you are referring to the same thing, but I did encounter something similar with while running the tests.
It seemed to me the issue happened non-deterministically while running the interact macro tests.
I couldn't identify whether the issue was with the macro itself, or with the test.
Interact runs on 2 threads: the main thread runs expect on the output port of the process, while the other is reading user input and submitting it to the process via its input port.
IMHO it is ensured that the interact thread gets closed on exit.
Also, I tried to make sure the tests close all ports correctly.
Not sure where the issue could be coming from.
At any rate, I have used the interact macro extensively outside of the tests, and never had such problems with it.
Best regards,
Daniel Dinnyes