joker

Discuss all things joker, the Clojure interpreter/linter on top of Go. https://github.com/candid82/joker
Candid 2019-04-06T00:38:12.028400Z

yes, it uses metadata, and most of the core functions are tagged with types, i.e. https://github.com/candid82/joker/blob/master/core/data/core.joke#L713

Candid 2019-04-06T00:45:16.028700Z

Joker simply returns 1 if there are any problems with the code, including read or parse errors

Candid 2019-04-06T00:50:13.028900Z

I've been thinking about deps management for Joker, but it's a hard problem and I have not had the bandwidth lately to take this on. I want deps to be specified in the code itself, rather than in a separate file processed by a separate tool. Something like (require '<namespace> :from <url>), but obviously there is a lot to think about here.

borkdude 2019-04-06T06:00:53.029300Z

ok

dehli 2019-04-06T14:35:37.029500Z

Thanks @roman.bataev! Just discovered your library and I'm loving it 🙂

Candid 2019-04-06T23:02:56.029900Z

Joker v0.12.2 is out: https://github.com/candid82/joker/releases/tag/v0.12.2

6👍
Candid 2019-04-06T23:03:34.030700Z

among other things, there is finally a non-hacky way of parsing numbers:

user=> (joker.strconv/atoi "1234")
1234

3👍
Candid 2019-04-09T04:06:38.036300Z

docs are updated, tests .... some day 🙂

jcburley 2019-04-06T23:14:09.031Z

Any tests tho? 😉

jcburley 2019-04-06T23:28:48.031200Z

Also might be good to update https://candid82.github.io/joker/. I've updated the darwin and linux architectures for https://burleyarch.com/joker/docs/; will do Windows when I next fire up my Win7 machine.

jcburley 2019-04-06T23:29:04.031400Z

But adding strconv should make Joker vastly more usable for many!

jcburley 2019-04-06T23:31:28.032500Z

FYI, I've updated my gostd fork of Joker to 0.12.2, and updated the darwin and linux docs at https://burleyarch.com/joker/docs/. Will update the Windows docs when I next fire up my Win7 machine.

2019-04-08T18:50:25.033500Z

What does this fork provide? Is it fair to assume that it exposes Go stdlib?

jcburley 2019-04-08T18:51:16.033700Z

That's the idea. Still needs a lot of work to be really useful, but (for example) it already usefully exposed strconv before Roman hand-crafted the new Joker wrapper for it.

jcburley 2019-04-08T18:51:43.033900Z

But by "exposed" it is really just a low-level automated exposing/wrapping -- little or no Clojure-style wrapping.

jcburley 2019-04-08T18:53:27.034100Z

For example, joker.strconv/atoi throws an exception upon a parse error, and otherwise returns a Number; while std.go.strconv/atoi returns a two-element vector, the first being the Number (if any), the second being the "error object" (a conversion of error to something Joker/Clojure-like), and presumably never throws.

jcburley 2019-04-08T19:06:45.034300Z

Correction: it's actually go.std.strconv/Atoi, as the namespaces my fork adds all being with go., and the function names are all capitalized (and CamelCased) because they're the same names Go gives the function/receiver names (which start with a capital letter when they're public).

2019-04-08T19:33:23.034500Z

I see, thanks for the clarification!

1👍