This page logs work being done under Clojurists Together Q2 2018 Funding Round towards the ClojureScript project. High level progress reports will be published formally with Clojurists Together, but you can follow here if you are interested in low-level details, progress notes, etc.
The concrete themes identified include:
- Fixing CLJS-2702, which prevents us from upgrading to newer versions of Closure Library.
- Work on highly voted ClojureScript tickets. Please take some time and vote in this list of tickets in need of patches.
- Work on issues related to NPM dependency management. (In particular NPM issues in the list above will be given extra emphasis).
Work started on CLJS-2702. See details surrounding this work.
Candidate patch attached to CLJS-2702.
Developed patch in CLJS-2724, allowing use of native Node modules in scripts run via cljs.main
.
Developed patch in CLJS-2739, which improves node_modules
indexing performance 6×.
Sorted out a follow-on issue with CLJS-2702 (testing with latest Closure Library), and attached a patch in CLJS-2751.
Started looking into CLJS-1871.
Started looking into CLJS-2369.
Submitted a patch in CLJS-2298, which causes REPLs to load an user-defined user.cljs
/ user.cljc
file.
Rebaselined patch in CLJS-2651, and it was subsequently applied. This means that Git Deps works in the Shared AOT Cache feature.
Resolved CLJS-2369. (It turned out to be a valid problem with ClojureScript 1.9.946, but no longer reproducible with 1.10.238.)
Further investigated CLJS-1871 and found that we are already getting what is desired in that ticket owing to the double analysis of cljs.core
that occurs when building the compiler, along with CLJS-1992. Also sorted out alternate var meta that achieves the desired effect. Now an open question as to how we proceed given this info.
Found that CLJS-2440 is not reproducible.
Added a patch to CLJS-1677, which lets us explicitly require goog
in ns
forms and have things work under :advanced
.
Supplied a patch that makes it possible to generate values satisfying uri?
(CLJS-2755).
Began looking into :npm-deps
issue CLJS-2757.
Landed patch in CLJS-1871, which allows static dispatch to declared functions when hinted with :arglists
meta. A bonus side effect is that it helps catch arity errors for calls to declared functions.
Submitted patch in CLJS-2766, which is a self-host regression surrounding revisions to the exists?
implementation.
Looked into CLJS-2770, an odd issue reported with Rhino in com.foo
namespaces.
Submitted CLJS-2769 (which has been landed on master). This makes it possible to run the self-hosts tests with the very latest Google Closure Library code.
Did some work on CLJS-2748.
Developed a patch in CLJS-2775, a corner case with :install-deps
and cljs.main
.
Developed a fix for an issue that prevented async test result reporting from properly occuring with the Node REPL (CLJS-2780).
Added a patch in CLJS-2442, which speeds things up when applying set
to a set and vec
to a vector.
Added a patch in CLJS-2790 which fixes spurious inference warnings when using defrecord
with fields.
Re-baselined and re-benchmarked CLJS-2341 given that CLJS-844 has been applied.
Took a look into CLJS-2341, an issue with using CraftyJS—a library targeting the browser—directly as an NPM dependency.
Progressed CLJS-2693 (support for chuncked-seq processing for ranges), and got the revisions to pass the ClojureScript unit tests. This led to patches in CLJS-2798 and CLJS-2799.
Submitted patch in CLJS-2693 (chunked-seq for range).
Investigated CLJS-2796, tracing it to a potential Closure Compiler regression.
CLJS-2802, which lets empty?
work on transient collections.
CLJS-1702 warning when using private vars
CLJS-1997 Outward function type hint propagation
CLJS-2811 cljs-1537-circular-deps fail on Windows
CLJS-2812 IPrintWithWriter
for native types
CLJS-2813 Java serializability of JSValue
CLJS-2817 private var warnings when fdef
on private vars
CLJS-2819 warn non-dynamic earmuffed vars
CLJS-2806 update to latest test.check
CLJS-2821 update docstring for doto
to use js/Map
Looked into CLJS-2793, an issue with specing variadic fns.
CLJS-2822 port an upstream change in cljs.core.specs.alpha
Did some work on a graaljs
REPL env.
CLJS-2382 bad code gen surrounding application of not
in operator position
CLJS-2833 Update to Closure Compiler v20180716
CLJS-2541 binding
not made in parallel
CLJS-2825 Eliminate unnecessary ^boolean
annotations
CLJS-2837 cat
specs should verify value is sequential
CLJS-2838 s/&
does not check preds if regex matches empty collection
(and many other spec-related tickets to bring things up-to-date)
CLJS-2725 Doc on spec keywords
CLJS-2852 Clojure imparity: ns-publics returns different arglists for macros