Hi there, I haven't contributed to Clojure or ClojureScript before so I thought I'd get some input from the mailing list before I went and made any changes or raised any more issues on JIRA.
For context, I'm currently working on a pREPL based development environment for Neovim, it's pre-pre-alpha so I'm not documenting and sharing it just yet but I'm using it for day to day work and it's been enjoyable so far.
I discovered an issue with the CLJS pREPL where exceptions are returned as data instead of a string, unlike all other :val responses. I've reported that issue here and will be submitting a patch soon:
https://dev.clojure.org/jira/browse/CLJS-2994
I was just going to catch exceptions and ensure they're run through the val fn and formatted as a string, shouldn't be anything too controversial there.
The other issue I discovered but haven't reported yet was that the CLJS pREPL supports reader conditionals but the CLJ one doesn't. I worked around this by wrapping my CLJ code in read-strings and evals that _do_ allow reader conditionals. Is this by design or would allowing reader conditionals in the CLJ pREPL be desirable?
I also think I managed to get the CLJ pREPL to return data under :val for some exceptions but I need to look into that. In my opinion the pREPLs for both languages should:
* ALWAYS return a string under :val, no matter what.
* Accept reader conditionals.
Anyone disagree with those statements? If not I'll submit some patches to align the two which will allow me to delete some workarounds from my tooling :)
Thanks a lot,
Oliver Caldwell
(oh, and here's my pREPL tooling if you want to keep an eye on it for the future although I'll be tweeting about it when it's ready
https://github.com/Olical/conjure)