Fork me on GitHub

Dual announcement: ClojureScript syntax to JavaScript compiler - 0.0.0-alpha.50 Experimental ClojureScript to ES6 module compiler - 0.0.0-alpha.57 Squint was previously announced here as ClavaScript, but was renamed to squint. Many improvements have been made since August, among which a substantial core functions library written in pure JS that has counterparts to CLJS core functions. Squint can be used to emit JavaScript from Clojure s-expressions and translates to direct JavaScript, without immutable data structures, etc, for ultra-small bundles. Cherry is similar to squint, but is closer to normal CLJS (immutable data structures, uses core functions from CLJS proper) with the penalty for a bigger output bundle (~300kb minimum). Both tools have much in common and share common compiler code. Some of the distinct features compared to normal CLJS: • 1-1 .cljs <-> .js file correspondence • Async/await support • Native support for JSX • Compiled code shares a common core module and can be distributed on NPM Work in progress: • Factoring out more common code • (n)REPL support

🤯 4
sci 1
clojure-spin 2
🍒 3
💪 25
👍 1
😮 2

See this twitter thread for a couple of highlights:

Daniel Gerson15:11:15

@U04V15CAJ Will squint ever be runnable on the JVM? (Thinking for sending 'eval' commands for any bridge like Playwright-Java etc).


@U03B2SRNYTY It is already runnable on the JVM


(require '[squint.compiler :as squint])
(squint/compile-string "(+ 1 2 3)")

🙌 1
Daniel Gerson23:11:32

@U04V15CAJ I guess it's not obvious without clojar details. I suppose it is :git/url includable, but I wouldn't presume it to be if the first thing I see is npm install ... . Many thanks for the info.


Yes, we should document it


New release of tabl, a cli and pod for producing tables from data: • Adds support for two new table formatting modes (markdown and k8s) • Updates compatibility with latest Babashka

🎉 9
👍 1

io.aviso/pretty 1.3 Pretty prints things prettily; mostly, carefully formatted exception output using ANSI colors, smarter ordering, and name-demangling to take the pain out of figuring out what went wrong, and where. Significant changes in 1.3: The ANSI font and color constants and functions in io.aviso.ansi now are no-ops if ANSI output is disabled; there's new logic to only enable ANSI output if in a REPL or if the JVM has a console, and an environment variable to override that decision. This make pretty less problematic when running in a server, or as a command in a Unix pipeline, as it won't try to log ANSI codes into text log files. New function: io.aviso.repl/-main; this simply installs pretty exceptions before delegating to clojure.core/main. The pretty replacement for clojure.repl/pst now writes output to *err* not *out*.

🎉 13