<< Back to previous view

[CLJS-1565] Self-host: whitespace optimization is broken Created: 08/Feb/16  Updated: 08/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Yehonathan Sharvit Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: bootstrap, bug


 Description   

When requiring `cljs.js` and compiling in `:optimizations :whitespace`
I get the following error in the browser:
"goog.require could not find: cljs.core$macros"

And the page is broken.



 Comments   
Comment by Mike Fikes [ 08/Feb/16 6:09 AM ]

I wonder if the description is sufficient to repro.

I'd recommend checking if CLJS-1541 fixes this.

Comment by Yehonathan Sharvit [ 08/Feb/16 6:45 AM ]

@mike CLJS-1541 doesn't fix this.





[CLJS-1318] Fix typo in documentation of `specify` Created: 22/Jun/15  Updated: 08/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 0.0-3308
Fix Version/s: None

Type: Enhancement Priority: Trivial
Reporter: Yehonathan Sharvit Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: docstring

Attachments: Text File CLJS-1318.patch     Text File patch.txt    
Patch: Code

 Description   

Fix typo in documentation of `specify`



 Comments   
Comment by Yehonathan Sharvit [ 22/Jun/15 6:27 AM ]

here is a patch that fixes the doc of `specify`

Comment by Mike Fikes [ 31/Jan/16 3:07 PM ]

Hey Yehonathan, the patch attached to this ticket isn't in the correct format. See https://github.com/clojure/clojurescript/wiki/Patches

Comment by Yehonathan Sharvit [ 01/Feb/16 12:40 AM ]

Attach a patch with the appropriate format

Comment by Mike Fikes [ 01/Feb/16 5:32 PM ]

LGTM and patch applies cleanly.

Comment by David Nolen [ 04/Feb/16 3:55 PM ]

Applied thanks, Yehonathan please remember to send in your CA thanks.

Comment by Mike Fikes [ 04/Feb/16 8:42 PM ]

Confirmed fixed with cljs.jar and downstream bootstrap.

Comment by Yehonathan Sharvit [ 08/Feb/16 12:58 AM ]

@david CA signed.





[CLJS-1564] Self-host: cached macro *loaded* update Created: 07/Feb/16  Updated: 07/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: bootstrap

Attachments: Text File CLJS-1564.patch    
Patch: Code and Test

 Description   

When using cljs.js/require, the cljs.js/*loaded* atom is updated reflecting loaded namespaces. When loading a cached macro namespace, the non-macros namespace name is added to the *loaded* set.

Minimal repo, with script/noderepljs:

$ script/noderepljs 
ClojureScript Node.js REPL server listening on 52507
To quit, type: :cljs/quit
cljs.user=> (require '[cljs.js :as cljs])
nil
cljs.user=> ;; Load a macros namespace
cljs.user=> (cljs/require
  {}
  'foo.core
  :reload-all
  {:macros-ns true
   :load      (fn [_ cb] (cb {:lang   :clj
                              :source "(ns foo.core)"}))
   :eval      (constantly nil)}
  (fn [_]
    (prn @cljs/*loaded*)))
#{foo.core$macros}
nil
cljs.user=> ;; Do the same again, but return cached js
cljs.user=> (cljs/require
  {}
  'foo.core
  :reload-all
  {:macros-ns true
   :load      (fn [_ cb] (cb {:lang   :js
                              :source ""}))
   :eval      (constantly nil)}
  (fn [_]
    (prn @cljs/*loaded*)))
#{foo.core}
nil
cljs.user=> ;; Note that *loaded* now has #{foo.core}


 Comments   
Comment by Mike Fikes [ 07/Feb/16 10:44 PM ]

This was a simple oversight with the changes made for CLJS-1504: One spot was missed in the places where name needed to be converted to aname.

With this change, the repo in the description goes away and the included additional unit tests covering *loaded* pass.

Additionally in a downstream cljs.js client, where a regular namespace refers several symbols from a cached macros namespace, it can be seen that loading of the cached namespace occurs once and only once, as opposed to an additional time for each referred symbol as :use-macros is being processed.





[CLJS-1563] :source-map option to cljs.build.api/build should take nil Created: 07/Feb/16  Updated: 07/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.48
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Isaac Cambron Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

It should be possible to specify `nil` or `false` when providing the `:source-map` option to `cljs.build.api/build`, for example, like this:

```
(build {... :optimizations :whitespace :source-map (when debug? "somepath.js.map")})
```

Currently that causes:

```
Exception in thread "main" java.lang.AssertionError: Assert failed: :source-map nil must specify a file in the same directory as :output-to "target/js/zs-background.js" if optimization setting applied
(or (nil? (:output-to opts)) (:modules opts) (string? source-map)), compiling/Users/isaac/code/zensight/client/cljs/build.clj:66:1)
```

Using `false` has the same behavior. The alternative of conditionally `assoc`ing the key in works just fine, but is a tad awkward. It seems reasonably straightforward to fix - need to change that assert to check the value in the map and double-check that it's checked properly downstream. Happy to submit a patch if you'll take it.



 Comments   
Comment by Isaac Cambron [ 07/Feb/16 10:18 AM ]

Apologies for the formatting; forgot that backtick stuff doesn't work in Jira.





[CLJS-1562] WARN on hinted fn call type mismatch Created: 06/Feb/16  Updated: 06/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Mike Fikes Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

If a call is made to a function that has hinted arguments (especially {^boolean} and {^number}), with an expression that is known to not be of that type, emit a diagnostic type mismatch warning.

An example that should emit a warning is:

(defn f [^boolean b])
(f 0)





[CLJS-1561] WARN if recur passes non-inferred type Created: 06/Feb/16  Updated: 06/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Mike Fikes Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File CLJS-1561.patch    
Patch: Code

 Description   

Take this code as an example:

(defn f [^boolean b]
  (loop [x b]
    (if x
      (recur 0)
      :done)))

The type of x is inferred to be Boolean, but there is a recur form that can be statically deduced to be passing a non-Boolean.

This ticket asks that a WARN be issued for this case, and perhaps others (where maybe x itself is directly type hinted).



 Comments   
Comment by Mike Fikes [ 06/Feb/16 2:59 PM ]

Attached a patch which warns on for the case of boolean and number, since those two types have special handling.

Some example usage:

cljs.user=> (defn f [^boolean b]
       #_=>   (loop [x b]
       #_=>     (if x
       #_=>       (recur 0)
       #_=>       :done)))
WARNING: recur target parameter x has inferred type boolean, but being passed type number at line 4 
#'cljs.user/f
cljs.user=> (loop [x 1 y true z :hi]
       #_=>   (when false (recur 'a "hi" nil)))
WARNING: recur target parameter x has inferred type number, but being passed type cljs.core/Symbol at line 2 
WARNING: recur target parameter y has inferred type boolean, but being passed type string at line 2 
nil
cljs.user=> (loop [x 1 y true]
       #_=>  (when false (recur nil nil)))
WARNING: recur target parameter x has inferred type number, but being passed type clj-nil at line 2 
WARNING: recur target parameter y has inferred type boolean, but being passed type clj-nil at line 2 
nil
cljs.user=> (loop [x 1]
       #_=>   (let [y (inc x)]
       #_=>     (when false (recur (inc y)))))
nil
cljs.user=> (loop [b true]
       #_=>   (when false (recur (inc 1))))
WARNING: recur target parameter b has inferred type boolean, but being passed type number at line 2 
cljs.user=> (loop [x 1] 
       #_=>   (inc x) 
       #_=>     (when false (recur :hi)))
WARNING: recur target parameter x has inferred type number, but being passed type cljs.core/Keyword at line 3 
nil
cljs.user=> (loop [x :hello] 
       #_=>   (inc x) 
       #_=>     (when false (recur :hi)))
WARNING: cljs.core$macros/+, all arguments must be numbers, got [cljs.core/Keyword number] instead. at line 2 
nil




[CLJS-485] clojure.string/replace ignores regex flags Created: 12/Mar/13  Updated: 06/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: Next

Type: Defect Priority: Minor
Reporter: Esa Virtanen Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: bug, patch, test

Attachments: Text File 0001-Take-regex-flags-m-i-into-account-in-clojure.string-.patch     Text File CLJS-485.patch    
Patch: Code and Test

 Description   

The replace function in namespace clojure.string ignores regex flag provided in the match pattern. For example:

CLJS
clojure.string/replace "I am NOT matched" #"(?i)not " "")
=> "I am NOT matched"
CLJ
clojure.string/replace "I am NOT matched" #"(?i)not " "")
=> "I am matched"

The attached patch fixes this by parsing the m and i flags, if set, from the match object, instead of explicitly setting only "g".



 Comments   
Comment by Chas Emerick [ 19/Mar/14 9:29 AM ]

I can confirm the bug. The attached patch applies cleanly, and works as expected.

Esa, sorry for the long delay (this one must have slipped through the cracks)! Could you please submit a contributor's agreement, so that your patch can be merged? More info is here:

http://clojure.org/contributing

Comment by lvh [ 26/Jul/15 5:56 PM ]

I got bit by this bug. Working on figuring out if I can sign that agreement.

Comment by lvh [ 27/Jul/15 11:55 AM ]

This is a duplicate of CLJS-794.

Comment by Jake McCrary [ 04/Feb/16 6:58 PM ]

This patch changes string/replace-all to respect flags that were set on regexp passed as an argument.

I originally attached this to CLJS-794 and then noticed there was this older issue. I was unable to figure out how to edit at ticket to mark the patch as having "Code and Test" so I'm adding it to this issue instead.

I've signed a contributors agreement.

Comment by Mike Fikes [ 04/Feb/16 9:31 PM ]

There is a "sticky" flag y that could be conveyed.

http://www.ecma-international.org/ecma-262/6.0/index.html#sec-get-regexp.prototype.sticky

Comment by Jake McCrary [ 06/Feb/16 10:50 AM ]

Reading a bit more about it and looks like both 'u' and 'y' are newly supported in ECMA6. Is there a way to write tests that exercise this functionality? I've got changes locally to get support of 'y' but felt the need to write a test for it (as its a bit more complicated than simply looking for a flag) and am hung up on having EMCA6 support while running the tests.

I'm actually wondering if having 'u' and 'y' in there is a bit premature. Any guidance on whether adding code for 'u' and 'y' should be done (or removing 'u' from my patch) or testing ClojureScript with ECMAScript 6 support?

Comment by Mike Fikes [ 06/Feb/16 12:51 PM ]

One thought: Whatever this is exercising passes on recent versions of V8, JavaScriptCore, SpiderMonkey, Nashorn, and ChakraCore: https://github.com/clojure/clojurescript/blob/628d957f3ecabf8d26d57665abdef3dea765151e/src/test/cljs/cljs/core_test.cljs#L1472

It does seem tricky to write a robust RegExp clone implementation, and if you do some googling you see people dealing with u and y as special cases. The patch seemed OK to me with respect to this, but I'm not a JavaScript expert.





[CLJS-970] assert - generate Error string when compiling Created: 10/Jan/15  Updated: 06/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Trivial
Reporter: Thomas Heller Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File cljs-970.patch    
Patch: Code

 Description   

Currently when using assert in CLJS the assert macro will generate the assert error message through CLJS. We can do that in CLJ which reduces the amount of code generated.

(let [bar 1]
  (assert (string? bar)))

Currently generates

if(typeof bar_11332 === 'string'){
} else {
throw (new Error([cljs.core.str("Assert failed: "),cljs.core.str(cljs.core.pr_str.call(null,cljs.core.list(new cljs.core.Symbol(null,"string?","string?",-1129175764,null),new cljs.core.Symbol(null,"bar","bar",254284943,null))))].join('')));
}

But could generate

if(typeof bar_23183 === 'string'){
} else {
throw (new Error("Assert failed: (string? bar)"));
}

Attached patch does that.



 Comments   
Comment by Thomas Heller [ 12/Jan/15 9:16 AM ]

Forgot to account for the fact that

(assert (string? something) "this might not be a string"))

New patch only generates the string of the form when compiling.

Comment by Mike Fikes [ 02/Feb/16 5:47 PM ]

Hey Thomas, the attached patch no longer applies.

I can confirm that if you make the same changes in master, they work there, and also in bootstrapped ClojureScript.

Comment by Thomas Heller [ 06/Feb/16 6:38 AM ]

Updated patch.

Comment by Mike Fikes [ 06/Feb/16 9:24 AM ]

I tested this patch, trying it with downstream `cljs.js` client, and it is working for me.





[CLJS-1541] Self-host: Cannot require 'cljs.js using cljs.jar Created: 10/Jan/16  Updated: 06/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: bootstrap
Environment:

Affects 1.7.228 and earlier


Attachments: Text File CLJS-1541.patch    
Patch: Code

 Description   

If you use script/noderepljs you can (require 'cljs.js) but not with the shipping JAR:

$ java -jar cljs.jar -m cljs.repl.node
ClojureScript Node.js REPL server listening on 56432
To quit, type: :cljs/quit
cljs.user=> (require 'cljs.js)
WARNING: Use of undeclared Var cljs.core/defmacro at line 99 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/-> at line 99 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 105 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 105 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/->> at line 115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 121 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 121 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 131 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/.. at line 131 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 145 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/form at line 145 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 145 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/form at line 145 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/form at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/form at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 149 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/comment at line 149 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 151 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 151 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 154 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/cond at line 154 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 160 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 160 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 161 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 166 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 163 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 164 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 162 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 169 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/declare at line 169 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/names at line 171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/names at line 171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 174 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doto at line 174 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 180 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 180 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 180 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 182 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 187 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 207 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/extend-protocol at line 207 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/p at line 242 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 242 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/specs at line 242 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/p at line 243 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/specs at line 243 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 265 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fn at line 265 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 273 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sigs at line 273 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sigs at line 274 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sigs at line 274 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sigs at line 275 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sigs at line 275 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&form at line 324 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 327 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defn- at line 327 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 329 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/decls at line 329 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/decls at line 330 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 333 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/if-let at line 333 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 338 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 338 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 339 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 339 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/oldform at line 340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 345 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 345 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 349 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 350 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 353 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/if-not at line 353 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 357 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 357 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 357 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 358 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 358 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 358 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 361 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/letfn at line 361 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnspecs at line 369 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 369 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 369 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnspecs at line 370 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnspecs at line 371 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 372 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 375 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/memfn at line 375 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 381 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 381 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 384 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 385 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 388 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/when at line 388 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 390 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 390 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 390 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 391 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 391 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 394 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/when-first at line 394 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 398 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 398 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 398 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 402 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 405 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 408 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/when-let at line 408 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 412 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 412 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 412 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 416 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 416 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 420 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 423 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/when-not at line 423 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 425 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 425 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 425 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 426 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 426 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 429 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/while at line 429 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 432 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 432 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 432 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/test at line 434 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 435 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 439 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/cond-> at line 439 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 444 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 444 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 444 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 445 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 448 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 449 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 453 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/cond->> at line 453 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 458 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 458 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 458 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 459 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 462 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 463 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 467 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/as-> at line 467 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 471 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 471 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 471 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 472 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 473 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 477 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/some-> at line 477 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 480 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 480 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 480 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 483 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 484 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 488 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/some->> at line 488 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 491 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 491 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 491 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 494 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/forms at line 495 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 499 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/if-some at line 499 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 504 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 504 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 505 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 505 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/oldform at line 506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 511 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 511 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/else at line 514 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/then at line 516 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 519 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/when-some at line 519 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 524 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 524 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 524 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 528 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 528 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 533 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 601 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defonce at line 601 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 601 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/init at line 601 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 602 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 603 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/init at line 603 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 605 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 605 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnname at line 605 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 605 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pairs at line 605 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pairs at line 612 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnname at line 614 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pairs at line 614 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pairs at line 615 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fnname at line 617 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 690 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/goog-define at line 690 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 704 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 704 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 705 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/goog-define at line 705 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 706 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 707 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 708 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 709 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 706 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 707 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 708 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 709 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 710 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 712 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 713 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 714 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 714 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 714 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 714 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 716 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/default at line 718 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 720 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/let at line 720 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 726 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 726 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 726 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 727 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/let at line 727 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 728 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 729 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 730 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 730 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 732 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/loop at line 732 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 736 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 736 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 736 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 737 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/loop at line 737 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 738 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 739 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 740 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 741 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 742 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 742 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 743 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 744 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 754 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 781 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/str at line 781 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 781 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 781 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 782 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 785 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 795 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/and at line 795 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 801 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 801 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 802 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 802 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 803 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 804 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 805 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 810 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 813 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/or at line 813 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 819 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 819 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 820 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 820 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 821 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 822 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 823 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 828 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 831 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/nil? at line 831 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 831 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 832 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 835 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coercive-not at line 835 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 835 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 836 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 839 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coercive-not= at line 839 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 839 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 839 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 840 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 840 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 843 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coercive-= at line 843 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 843 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 843 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 844 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 844 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coercive-boolean at line 847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 848 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 852 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/truth_ at line 852 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 852 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 853 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 854 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 854 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 857 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-arguments at line 857 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 860 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-delete at line 860 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/obj at line 860 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/obj at line 861 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 863 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-in at line 863 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/obj at line 863 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/obj at line 864 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 866 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-debugger at line 866 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 871 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-comment at line 871 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/comment at line 874 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/comment at line 875 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 885 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unsafe-cast at line 885 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 887 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 887 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 888 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 889 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 889 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 891 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-inline-comment at line 891 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/comment at line 893 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/comment at line 894 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 896 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/true? at line 896 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 896 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 897 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 899 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/false? at line 899 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 899 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 900 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 902 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/string? at line 902 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 902 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 903 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 906 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/exists? at line 906 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 909 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 912 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 914 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/undefined? at line 914 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 916 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 917 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/identical? at line 919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/b at line 919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/b at line 920 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 920 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 922 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/instance? at line 922 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 922 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/o at line 922 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 926 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 927 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/o at line 927 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 928 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/o at line 928 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 931 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/number? at line 931 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 931 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 932 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 934 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/symbol? at line 934 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 934 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 935 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 937 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/keyword? at line 937 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 937 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 938 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 940 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/aget at line 940 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 941 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 941 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 942 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 942 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 943 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 943 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 943 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxs at line 943 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxs at line 944 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 945 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 945 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxs at line 945 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 947 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/aset at line 947 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 948 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 948 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/v at line 948 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/v at line 949 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/i at line 949 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 949 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx2 at line 950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxv at line 950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxv at line 951 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 953 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 953 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx2 at line 953 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idxv at line 953 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 955 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/+ at line 955 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 957 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 957 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 958 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 958 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 958 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 958 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 959 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 961 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/byte at line 961 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 961 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 961 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 962 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/short at line 962 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 962 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 962 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 963 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/float at line 963 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 963 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 963 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 964 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/double at line 964 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 964 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 964 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 966 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-byte at line 966 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 966 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 966 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 967 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-char at line 967 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 967 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 967 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 968 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-short at line 968 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 968 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 968 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 969 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-float at line 969 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 969 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 969 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 970 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-double at line 970 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 970 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 970 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 972 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-add at line 972 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 973 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 973 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 973 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 975 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-add-int at line 975 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 976 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 976 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 976 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 978 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-dec at line 978 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 979 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 979 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 981 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-dec-int at line 981 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 982 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 982 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 984 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-divide-int at line 984 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 985 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 985 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 985 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 987 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-inc at line 987 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 988 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 988 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 990 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-inc-int at line 990 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 991 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 991 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 993 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-multiply at line 993 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 994 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 994 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 994 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 996 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-multiply-int at line 996 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 997 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 997 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 997 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 999 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-negate at line 999 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1000 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1000 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1002 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-negate-int at line 1002 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1003 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1003 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1005 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-remainder-int at line 1005 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1006 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1006 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1006 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1006 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1008 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-subtract at line 1008 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1009 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 1009 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 1009 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1011 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unchecked-subtract-int at line 1011 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1012 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 1012 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 1012 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1014 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/- at line 1014 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1015 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1015 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1016 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1016 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1016 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1016 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1017 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1019 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/* at line 1019 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1021 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1021 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1022 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1022 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1022 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1022 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1025 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros// at line 1025 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1026 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1026 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1027 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1027 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1027 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1027 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1028 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1030 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/divide at line 1030 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1031 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1031 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1032 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1032 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1032 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1032 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1033 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1035 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/< at line 1035 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1036 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1037 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1037 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1037 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1037 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1038 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1040 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/<= at line 1040 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1041 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1042 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1042 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1042 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1042 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1043 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1045 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/> at line 1045 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1046 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1048 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1050 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/>= at line 1050 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1051 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1052 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1052 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1052 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1052 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1053 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1055 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/== at line 1055 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1056 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1057 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1057 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1057 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1057 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1058 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1060 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dec at line 1060 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1060 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1061 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1063 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/inc at line 1063 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1063 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1064 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1066 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/zero? at line 1066 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1066 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1067 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1069 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pos? at line 1069 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1069 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1070 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1072 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/neg? at line 1072 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1072 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1073 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1075 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/max at line 1075 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1076 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1076 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1077 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1077 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1077 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1077 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1079 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1081 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/min at line 1081 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1082 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1082 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1083 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1083 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1083 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1083 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1085 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1087 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-mod at line 1087 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/num at line 1087 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/div at line 1087 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/div at line 1088 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/num at line 1088 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1090 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-not at line 1090 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1090 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1091 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1093 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-and at line 1093 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1094 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1094 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1094 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1094 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1095 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1098 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unsafe-bit-and at line 1098 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1099 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1099 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1099 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1099 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1100 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1102 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-or at line 1102 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1103 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1103 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1103 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1103 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1104 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1106 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/int at line 1106 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1106 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1107 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1109 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-xor at line 1109 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1110 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1110 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1110 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1110 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1111 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1113 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-and-not at line 1113 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1114 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1114 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1114 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1114 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/y at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/more at line 1115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1117 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-clear at line 1117 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1117 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1117 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1118 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1118 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-flip at line 1120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1120 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1121 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1121 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1123 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-test at line 1123 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1123 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1123 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1124 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1124 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1126 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-shift-left at line 1126 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1126 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1126 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1127 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1127 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1129 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-shift-right at line 1129 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1129 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1129 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1130 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1130 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1132 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-shift-right-zero-fill at line 1132 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1132 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1132 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1133 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1133 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1135 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/unsigned-bit-shift-right at line 1135 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1135 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1135 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1136 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1136 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1138 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bit-set at line 1138 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1138 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1138 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/n at line 1139 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1139 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1142 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mask at line 1142 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/shift at line 1142 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/shift at line 1143 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bitpos at line 1146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/shift at line 1146 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/shift at line 1147 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1150 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/caching-hash at line 1150 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coll at line 1150 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-fn at line 1150 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-key at line 1150 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-key at line 1151 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-key at line 1152 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-fn at line 1155 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/coll at line 1155 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-key at line 1156 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1168 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defcurried at line 1168 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc at line 1171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 1171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc at line 1172 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 1172 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1172 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1185 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/rfn at line 1185 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f1 at line 1187 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/k at line 1187 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fkv at line 1187 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f1 at line 1188 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/k at line 1188 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fkv at line 1188 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1216 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/reify at line 1216 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1254 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1254 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1262 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1263 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1273 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&form at line 1274 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1276 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/specify! at line 1276 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 1278 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1278 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1278 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 1280 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1281 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1284 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/specify at line 1284 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 1287 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1287 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1287 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 1288 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1289 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1291 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-this at line 1291 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1294 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/this-as at line 1294 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1296 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1296 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1298 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1483 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/extend-type at line 1483 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1494 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1494 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1494 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1495 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1496 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1498 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1499 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1501 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1503 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1505 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1505 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/type-sym at line 1506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1574 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/deftype at line 1574 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 1623 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1623 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1623 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1623 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 1624 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1624 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1625 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 1626 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1627 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1628 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/t at line 1629 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1633 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1634 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1635 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1635 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1636 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1641 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1738 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defrecord at line 1738 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/rsym at line 1791 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1791 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1791 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1791 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/rsym at line 1792 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1792 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/rsym at line 1793 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1795 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1798 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1798 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/impls at line 1798 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1799 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1803 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fields at line 1804 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1807 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defprotocol at line 1807 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc+methods at line 1847 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1848 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1848 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc+methods at line 1849 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc+methods at line 1850 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc+methods at line 1850 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doc+methods at line 1851 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1852 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1855 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1902 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/implements? at line 1919 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1921 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1921 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1924 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1924 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1930 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1931 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1938 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1939 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1940 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1945 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/satisfies? at line 1945 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1947 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1947 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 1950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1950 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1956 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1957 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1963 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1965 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1966 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1967 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1968 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1970 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1971 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1971 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/psym at line 1973 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 1973 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1975 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/lazy-seq at line 1975 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1980 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1980 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1981 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1983 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/delay at line 1983 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1988 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1988 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1989 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 1991 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/with-redefs at line 1991 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 1999 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 1999 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 1999 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2000 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2001 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2009 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2013 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/binding at line 2013 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2021 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2021 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2021 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2022 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2023 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2024 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2024 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2026 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/condp at line 2026 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pred at line 2047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2047 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/pred at line 2064 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2065 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2066 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2090 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/case at line 2090 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2113 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2113 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2113 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2114 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2115 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2118 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2119 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2135 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2140 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2140 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/clauses at line 2140 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2143 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2151 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2151 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/e at line 2156 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2161 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert at line 2161 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2164 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2166 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2168 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2169 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/message at line 2169 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2171 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/message at line 2173 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2173 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2175 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/for at line 2175 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2185 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body-expr at line 2185 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 2186 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/for at line 2186 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2187 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2188 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body-expr at line 2214 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body-expr at line 2237 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2259 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2260 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2262 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doseq at line 2262 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2266 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2266 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2266 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/assert-args at line 2267 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/doseq at line 2267 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2268 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2269 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2273 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/seq-exprs at line 2316 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2318 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/array at line 2318 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2318 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2327 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/make-array at line 2327 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/size at line 2328 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/size at line 2330 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/size at line 2331 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/size at line 2332 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2335 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/list at line 2335 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2337 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2337 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2337 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2338 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/x at line 2338 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/vector at line 2340 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2342 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2342 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2343 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2346 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2348 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2351 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/array-map at line 2351 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2353 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2353 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2354 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2356 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2358 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2358 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2359 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2361 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-map at line 2361 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2363 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2363 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/kvs at line 2364 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2371 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/hash-set at line 2371 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2373 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2373 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2374 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2376 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2376 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2377 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2377 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2374 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2376 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2376 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2377 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2377 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2379 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2379 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/xs at line 2382 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2394 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-obj at line 2394 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2394 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2414 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/alength at line 2414 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2414 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2416 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2419 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/amap at line 2419 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2424 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2424 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2424 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2424 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2425 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2426 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2427 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2428 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2430 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2430 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2430 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2431 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2432 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2434 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/areduce at line 2434 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2438 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2438 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2438 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/init at line 2438 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2438 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/a at line 2439 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2440 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2440 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/init at line 2440 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2441 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/idx at line 2442 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2442 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ret at line 2443 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2445 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dotimes at line 2445 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2450 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2450 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2450 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2451 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2452 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2456 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2469 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defmulti at line 2469 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mm-name at line 2477 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2477 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2477 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2478 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2479 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2481 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2482 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/options at line 2483 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mm-name at line 2495 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mm-name at line 2496 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2498 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mm-name at line 2506 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/mm-name at line 2512 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2515 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/defmethod at line 2515 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/multifn at line 2517 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dispatch-val at line 2517 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2517 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fn-tail at line 2517 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/multifn at line 2518 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dispatch-val at line 2518 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/fn-tail at line 2518 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2520 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/time at line 2520 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2522 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2524 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2530 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/simple-benchmark at line 2530 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/iterations at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/print-fn at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/print-fn at line 2537 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2538 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2539 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/bindings at line 2540 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/iterations at line 2542 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/expr at line 2542 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/print-fn at line 2545 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/iterations at line 2546 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2565 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/gen-apply-to at line 2565 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2575 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/with-out-str at line 2575 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2579 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2579 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/body at line 2583 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2586 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/lazy-cat at line 2586 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2592 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/colls at line 2592 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/colls at line 2593 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2595 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/js-str at line 2595 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/s at line 2595 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/s at line 2596 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2598 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/es6-iterable at line 2598 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ty at line 2598 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ty at line 2599 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2604 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns-interns at line 2604 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote at line 2606 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2606 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote at line 2607 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2607 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote at line 2607 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2607 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2612 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2613 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2615 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns-unmap at line 2615 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote0 at line 2617 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2617 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote1 at line 2617 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 2617 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote0 at line 2618 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2618 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote1 at line 2619 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 2619 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote0 at line 2618 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2618 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quote1 at line 2619 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 2619 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2621 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 2621 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/ns at line 2622 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/sym at line 2622 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2624 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/vswap! at line 2624 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/vol at line 2628 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f at line 2628 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/& at line 2628 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 2628 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/vol at line 2629 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f at line 2629 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/vol at line 2629 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/args at line 2629 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2632 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/load-file* at line 2632 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f at line 2632 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/f at line 2633 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2635 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/macroexpand-1 at line 2635 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2638 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2639 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2641 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2642 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2644 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/macroexpand at line 2644 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2648 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2649 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/quoted at line 2651 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/&env at line 2652 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core/defmacro at line 2697 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/copy-arguments at line 2697 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dest at line 2697 .cljs_node_repl/cljs/core.cljc
WARNING: Use of undeclared Var cljs.core$macros/dest at line 2701 .cljs_node_repl/cljs/core.cljc
TypeError: Cannot read property 'call' of undefined
    at Object.<anonymous> (/Users/mfikes/Downloads/.cljs_node_repl/cljs/core$macros.js:11:19)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at global.CLOSURE_IMPORT_SCRIPT (repl:75:3)
    at Object.goog.require (repl:21:8)
    at Object.<anonymous> (/Users/mfikes/Downloads/.cljs_node_repl/cljs/js.js:14:6)
cljs.user=>


 Comments   
Comment by Mike Fikes [ 05/Feb/16 5:06 PM ]

Some analysis:

A more fundamental issue is that, in script/noderepljs, the defmacro underlying function exists:

cljs.user=> (defmacro x [])
true

while this is not the case with cljs.jar

cljs.user=> (defmacro x [])
WARNING: Use of undeclared Var cljs.user/defmacro at line 1 <cljs repl>
WARNING: Use of undeclared Var cljs.user/x at line 1 <cljs repl>
TypeError: Cannot read property 'call' of undefined
    at repl:1:107
    at repl:9:3
    at repl:14:4
    at Object.exports.runInThisContext (vm.js:54:17)
    at Domain.<anonymous> ([stdin]:41:34)
    at Domain.run (domain.js:221:14)
    at Socket.<anonymous> ([stdin]:40:25)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:146:16)

Perhaps this is associated with the difference that is causing compilation of the core.cljc file to fail. There is also some circularity to sort out with respect to this.

Comment by Mike Fikes [ 06/Feb/16 8:21 AM ]

The attached patch addresses the issue. The rationale is that it copies the working approach for defn.

Here is an example testing it with Nashorn (it also works with Node):

$ java -jar ~/Projects/clojurescript/target/cljs.jar -m cljs.repl.nashorn
To quit, type: :cljs/quit
cljs.user=> (require 'cljs.js)
nil
cljs.user=> (cljs.js/eval-str (cljs.js/empty-state) 
              "(+ 1 2)" nil {:eval cljs.js/js-eval} identity)
{:ns cljs.user, :value 3}




[CLJS-924] Better error message for mistaken use of 'def' Created: 24/Dec/14  Updated: 05/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Trivial
Reporter: Alex Dowad Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File 0001-Better-error-message-if-def-is-mistakenly-substitute.patch    
Patch: Code

 Description   

ClojureScript shares what is IMHO one of the biggest weaknesses of the current JVM Clojure implementation: those (in)famous stack traces going down into the innards of the compiler if you get your syntax wrong. An easy mistake for noobs is to use 'def' in place of 'defn'; this patch makes that mistake a lot less painful to debug.

Feedback please!



 Comments   
Comment by Mike Fikes [ 05/Feb/16 8:19 PM ]

Patch no longer applies.





[CLJS-1153] Typed Array backed PersistentVector based on clojure.core/Vec Created: 19/Mar/15  Updated: 05/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Adrian Medina Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: enhancement

Attachments: Text File 1153.patch    
Patch: Code

 Description   

Goal is to add support for vectors based on clojure.core/Vec, built on top of JavaScript Typed Arrays.

My hope is that this would allow for both efficient creation of vectors from existing Typed Arrays without intermediate conversion to normal JavaScript arrays, as well as efficient concatenation of the composite arrays of the vector back into a Typed Array when necessary via an enhanced cljs.core/into-array.

Implementation is based heavily on clojure/core/gvec.clj, cljs.core/PersistentVector, and cljs.core/TransientVector.

Performance should be comparable to cljs.core/PersistentVector, although there is additional constant overhead with TypedArray instantiation compared to js/Array.

Adds cljs.core/Vec, cljs.core/TransientVec, cljs.core/vector-of, and updates cljs.core/into-array.



 Comments   
Comment by Adrian Medina [ 19/Mar/15 8:39 PM ]

I still have to test, I will update the issue when that is complete. I just wanted to get my first patch up for review as quickly as possible.

Comment by Francis Avila [ 19/Mar/15 11:59 PM ]

No mention of Uint8ClampedArray.

Should Vec type- or range-check assignments? In Clojure these fail (even with unchecked-math):

  • (vector-of :byte 128) returns [-128]
  • (vector-of :byte "1") returns [1]
  • (vector-of :byte (js-obj)) returns [0]

If we're going to expose host primitive arrays via cljs apis, should we also bring the various other array functions in line with Clojure (and ClojureCLR, which also has extra uint, ubyte, etc types) like you are doing with into-array? Some or all of these issues may warrant another ticket instead, or maybe even a design page:

  • make-array ignores type argument and lacks higher dimensions.
  • object-array, int-array, etc. maybe should return TypedArrays.
  • Missing ubyte-array, ushort-array, uint-array (like ClojureCLR)
  • Missing aset-* setters. (Meaningless in js unless we range-check.)
  • aclone and amap preserve type of input array in Clojure, but not in cljs.
  • missing array casters: bytes, shorts, chars, ints, etc.
  • While we're at it, primitive coercion functions (e.g. int, long, unchecked-int, etc) are either no-ops or differ from clojure. (e.g., int in cljs is like unchecked-int in clojure, but unchecked-int in cljs does nothing). Maybe these should be dropped or should match the javascript ToInt32, ToInt16, etc abstract operations (i.e. those used when assigning to TypedArrays). Maybe these match java semantics also?
Comment by Mike Fikes [ 05/Feb/16 8:18 PM ]

Patch 1153.patch no longer applies





[CLJS-1515] Self-host: Allow :file key in cljs.js/*load-fn* callback Created: 17/Dec/15  Updated: 05/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Unresolved Votes: 0
Labels: bootstrap

Attachments: Text File CLJS-1515-1.patch     Text File CLJS-1515-2.patch     Text File CLJS-1515-3.patch     Text File CLJS-1515-4.patch     Text File CLJS-1515-5.patch    
Patch: Code and Test

 Description   

Bootstrapped ClojureScript is abstracted away from direct I/O by use of a *load-fn* callback. A result is that when a namespace is loaded, the :file attribute associated with def s in [:cljs.analyzer/namespaces 'foo.ns :defs] in the AST is nil, because cljs.analyzer/*cljs-file* cannot be set to a meaningful value.

This ticket asks for an extension to *load-fn*, allowing a :file key to be optionally included by cljs.js clients, and for cljs.analyzer/*cljs-file* to be bound to that value in appropriate places in cljs.js so that the :file info appears in the AST.

One rationale for this :file attribute is that it makes it easier for clients of cljs.js to look up the file for a def, say, for use when implementing a source REPL special, for example.



 Comments   
Comment by Andrea Richiardi [ 17/Dec/15 4:31 PM ]

Initial patch, adding a :file key to load-fn and a :file-env key inside opts and then assigning it to cljs.analyzer/cljs-file in eval-str. This approach can be discussed and we can create an ad-hoc function for binding. It felt right there.
Moreover, cljs.analyzer/cljs-file gets overridden every time with the payload coming from load-fn.
All this was very quickly done in order to have a feedback from who's more expert than me about the consequences. This is also my very first ClojureScript patch

Comment by Mike Fikes [ 17/Dec/15 5:33 PM ]

I tried this patch. It is working fine for me when loading namespaces, but if I use cljs.js/analyze-str where the string is an ns form referring other namespaces loaded via *load-fn*, along with a def, things are off. (I have that ns referring macros from a clj file and a symbol from a cljs file, and the clj file gets associated with the top-level def and the macro, and the def in the referred file ends up with nil.

As a minor aside, the patch has a spurious whitespace change at the end.

Comment by Mike Fikes [ 17/Dec/15 5:56 PM ]

With respect to the last comment: The patch employs the pattern of conveying the :file passed in the cb via a :file-env opt to the consuming fn. It is consumed in eval-str* but not in analyze-str*. If the same logic is added to analyze-str* then the problem mentioned in the last comment goes away.

Comment by David Miller [ 17/Dec/15 6:48 PM ]

I'm hopeful someone will assign this to a responsible party. I am not that person.

Comment by Andrea Richiardi [ 17/Dec/15 7:21 PM ]

sorry David (Miller) and thanks Mike, I will rework it, adding some tests as well

Comment by Andrea Richiardi [ 17/Dec/15 7:23 PM ]

By the way this makes me think that maybe a better choice is to consider this a side effect and directly modify cljs.analyzer/*cljs-file* returning from *load-fn*, who knows how many other spots I am not covering...

Comment by Mike Fikes [ 18/Dec/15 5:36 AM ]

Two more comments:

1) Broadening the scope of the binding doesn't appear to work properly for me. But things do work if the bindings are done as in the patch now (next to where the other bindings are done).

2) Perhaps :file should be only set if the :lang being called back with is :clj. Maybe this could at least be documented. (It is not clear to me if it is useful for :js, as the patch is setting ana/*cljs-file*.)

Comment by Andrea Richiardi [ 18/Dec/15 10:27 AM ]

About 2), is any AST generated for .js files at all? If yes maybe then we should add it too...I need to explore that code path as well.

Comment by Andrea Richiardi [ 18/Dec/15 3:33 PM ]

So basically with ana/*cljs-file* binding the :file in :meta is not changed at all (I fixed following Mike's advice) but :file is, are we ok with this? In replumb (from planck) we check both so no problem, nonetheless it would be great to know why..

:defs {foo {:protocol-inline nil, :meta {:file bootstrap-test.core, :line 3, :column 7, :end-line 3, :end-column 10, :arglists (quote ([a b]))}, :name bootstrap-test.core/foo, :variadic false, :file /.../clojurescript/src/test/self/bootstrap_test/core.cljs, :end-column 10, :method-params ([a b]), :protocol-impl nil, :arglists-meta (nil nil), :column 1, :line 3, :end-line 3, :max-fixed-arity 2, :fn-var true, :arglists (quote ([a b]))}}, :require-macros nil, :doc nil

Comment by Andrea Richiardi [ 18/Dec/15 3:44 PM ]

It looks like the information in :meta comes directly from the multimethod parse which I dont' think we can change easily. So either we override :file in :meta or we leave as it is with a note in the documentation for :file in *load-fn*

Comment by Andrea Richiardi [ 18/Dec/15 4:10 PM ]

About :js files at least to me it looks like the only trace of importing, say, goog.sting in the AST is in the :imports of the parent namespace. No :file key anywhere, but please correct me if I am wrong as the AST is difficult to untangle

Comment by Andrea Richiardi [ 18/Dec/15 5:29 PM ]

Patch and test

Comment by Mike Fikes [ 18/Dec/15 7:43 PM ]

Comments on {{CLJS-1515-2.patch}} (mostly just opinion):

  1. (Opinion): Introduces new public API, especially with respect to AST exposure. Perhaps fn could instead be added to the test namespace.
  2. (Opinion): I wouldn't try anything complicated to try to patch up the :file that is in the :meta map. (Maybe we'll ultimately figure out why setting cljs.analyzer/*cljs-file* is insufficient for that bit.)
  3. (Opinion): For the :file docstring, I'd avoid mentioning AST. (Even though that was the true motivation for this ticket.) I'd only indicate that it represents the location where :source was obtained. (Which I guess would leave open it being perfectly fine for clients to provide it in the case that :lang is :js.)
  4. script/test-self-host passes for me.
  5. Inadvertent whitespace changes in append-source-map.
Comment by Andrea Richiardi [ 18/Dec/15 7:49 PM ]

1. Sorry Mike I don't understand when you say fn...what do you mean? Can you expand?
2. Yes and it would change a lot of code, that's why I didn't even try
3. Ok can change that, but where should be mentioned that we are modifying :file but not inside :meta?
4. Great!
5. You know I really tried hard not to have that, I will try again to disable all the auto indent my emacs has.

Comment by Mike Fikes [ 18/Dec/15 8:30 PM ]

1. The three new public functions in cljs.js: (var-ast, ns-ast, file->lang) could perhaps be moved to be utility functions in the self-host test namespace.
3. Dunno about the :meta question. But on the :lang :js question, perhaps the patch should only bind :cljs.analyzer/*cljs-file* if :lang :clj?

Comment by Andrea Richiardi [ 18/Dec/15 8:38 PM ]

1. I know it looks like they are used in test only, but I put them there as public because both replumb and planck use them and I was kind of "proposing" this kind of AST utils to be part of the official API (so that the poor dev does not have to go through cljs.analyzer in order to query the AST. I understand if no though.
3. This I don't really know, and seek guidance. I have not noticed any significant change in the AST for .js file, maybe *cljs-file* is never queried in that code path. I could not even find a way to test it. But I could, of course, be very wrong.

Comment by Andrea Richiardi [ 21/Dec/15 2:13 PM ]

This puts the utils functions in the test namespace for now, maybe thinking about exposing some API in the future.

Comment by Andrea Richiardi [ 21/Dec/15 8:19 PM ]

About :js:

  • it looks like the analyze-str code path simply recurs to fetch the next dep. So I guess that branch does not touch the AST.
  • for the require code path it looks like it -> is -> similar.

Therefore I don't see the point in adding :file for :js and I will not bind *cljs-file* if this is the case, as you suggested.

Comment by Andrea Richiardi [ 21/Dec/15 9:48 PM ]

Patch #4 changes the conveying key to :cljs-file, after Mike's good suggestion, and moves the assoc to the (condp ... :clj) branch only. I also added a test to check that *cljs-file* does not match the file path when in the :js branch.

Comment by Andrea Richiardi [ 21/Dec/15 11:56 PM ]

Another note, the *cljs-file* test works because the binding form does not actually restore the old value when it exits...In Clojure it would not probably work.

^ This is plain wrong, I was not considering the "when" my tests are executed, please disregard.

Comment by Mike Fikes [ 23/Dec/15 5:13 PM ]

CLJS-1515-4.patch LGTM.

Details: I tested against current ClojureScript master, using downstream Planck to load regular and macro namespaces and the :file portion of the AST gets properly updated. This also occurs if I instead use cljs.js/analyze-str passing in an ns form that causes code to be loaded. Additionally unit tests (regular and bootstrap) pass for me. I think this patch is functionally good to go.

Comment by David Nolen [ 26/Dec/15 6:54 AM ]

Copying goog.string into the source tree is not desirable. Please fix the tests to remove this. If you must, copy it to a temporary a location from the Google Closure Library JAR and remove it after the test has completed, thanks.

Comment by Andrea Richiardi [ 26/Dec/15 2:20 PM ]

Patch 5 avoid copying string.js and re-uses self_host/test.js.

Comment by Andrea Richiardi [ 26/Dec/15 2:22 PM ]

Done what you asked

Comment by Mike Fikes [ 05/Feb/16 8:05 PM ]

CLJS-1515-5.patch no longer applies





[CLJS-1559] Closure :libs ignored Created: 05/Feb/16  Updated: 05/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Dominykas Mostauskis Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

:libs compilation option doesn't work. Whether specifying directories, or specific files. If trying to `import` one of the js classes (properly namespaced with `goog.provide`) into clojurescript, compilation fails with "no such namespace". If the libs code is not referenced in clojurescript, it compiles, and the output directory does not contain the libs js files.

Compilation options:

(cljs.closure/build
    "src/main/clojurescript"
    {:main 'example.core
     :libs ["/src/main/javascript/"]
     :optimizations :none
     :output-dir "js"
     :output-to "js/main.js"
     :source-map true
     :asset-path "/js"
     })

Javascript file:

goog.provide("test.Test");

test.Test = function(x) {
  this.x = x;
};


 Comments   
Comment by Mike Fikes [ 05/Feb/16 1:51 PM ]

Hi Dominykas, is the absolute path intentional? I suspect the intent was to not have the leading /.

Comment by Dominykas Mostauskis [ 05/Feb/16 2:01 PM ]

I made this typo when posting. On my setup paths are relative to project root.

Comment by David Nolen [ 05/Feb/16 2:38 PM ]

As far as I know quite a few people rely on this functionality. Please provide a complete minimal example or this issue will be closed. All source should be in the ticket or in this comment thread, no external links. Thanks.

Comment by Dominykas Mostauskis [ 05/Feb/16 3:50 PM ]

Can't reproduce. Tips would be appreciated. Banging my head against the wall here.





[CLJS-1560] cljs.reader/read-string doesn't read records that are printed Created: 05/Feb/16  Updated: 05/Feb/16  Resolved: 05/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Daniel Compton Assignee: Unassigned
Resolution: Declined Votes: 0
Labels: None


 Description   

I'm not sure if this is a bug, or feature enhancement, but there is a difference between how Clojure reads records that have been printed, and how ClojureScript does with cljs.reader/read-string.

In Clojure

user=> (defrecord myrec [a b])
user.myrec
user=> (pr-str (->myrec 1 2))
"#user.myrec{:a 1, :b 2}"
user=> (read-string (pr-str (->myrec 1 2)))
#user.myrec{:a 1, :b 2}

In ClojureScript

cljs.user=> (defrecord myrec [a b])
cljs.user/myrec
cljs.user=> (pr-str (->myrec 1 2))
"#cljs.user.myrec{:a 1, :b 2}"
cljs.user=> (cljs.reader/read-string "#cljs.user.myrec{:a 1, :b 2}")
Could not find tag parser for cljs.user.myrec in ("inst" "uuid" "queue" "js")
...
;; Add a tag parser
cljs.user=> (cljs.reader/register-tag-parser! "cljs.user.myrec" map->myrec)
nil
cljs.user=> (cljs.reader/read-string "#cljs.user.myrec{:a 1, :b 2}")
#cljs.user.myrec{:a 1, :b 2}

The proposed solution to this would be to register a tag parser when a defrecord is created. However after reading http://stackoverflow.com/questions/24661655/clojure-clojurescript-clojure-core-read-string-clojure-edn-read-string-and-c, it seems like perhaps the error is in my understanding and cljs.reader/read-string should be expected to behave more like clojure.edn/read-string. If this is the case, it might be good to update the docstrings for cljs.reader to make this distinction clearer.



 Comments   
Comment by David Nolen [ 05/Feb/16 2:36 PM ]

There isn't a good way to make this work due to the nature of advanced compilation. Those names won't exist. If we created some kind of lookup table that would defeat dead code elimination of unused records.





[CLJS-1523] Expose an undocumented Closure compiler DiagnosticGroup Created: 24/Dec/15  Updated: 05/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Rohit Aggarwal Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File CLJS-1523-1.patch    
Patch: Code

 Description   

Following the tutorial on (Compile Time Type checking wiki)https://github.com/clojure/clojurescript/wiki/Compile-Time-Type-Checking, I noticed that the compiler is producing a lot of warning and errors by default such as:

```
ERROR: JSC_WRONG_ARGUMENT_COUNT. Function cljs.core.array_seq: called with 2 argument(s). Function requires at least 1 argument(s) and no more than 1 argument(s). at ..../hello_world/out/cljs/core.js line 17738 : 186
```

These errors and warnings can be disabled by turning off an undocumented DiagosticGroup: (LINT_CHECKS)https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/DiagnosticGroups.java#L465



 Comments   
Comment by David Nolen [ 04/Feb/16 4:03 PM ]

This patch looks ok, Rohit have you submitted your CA? Thanks.

Comment by Rohit Aggarwal [ 05/Feb/16 2:52 AM ]

Hi David,
I've signed the Clojure CA and my name is listed here. Thanks a lot!

Comment by Mike Fikes [ 05/Feb/16 11:19 AM ]

I tried validating the patch, but I cannot reproduce the problem in the description, even with 1.7.170.

Comment by Rohit Aggarwal [ 05/Feb/16 11:27 AM ]

Hi Mike,
I just created a project using the mies template and changed the release.clj file to:

(require '[cljs.build.api :as b])

(println "Building ...")

(let [start (System/nanoTime)]
  (b/build "src"
    {:output-to "release/hello_world.js"
     :output-dir "release"
     :optimizations :advanced
     :closure-warnings {:check-types :error}
     :verbose true})
  (println "... done. Elapsed" (/ (- (System/nanoTime) start) 1e9) "seconds"))

Now when I do

scripts/release

I get warning like:

ERROR: JSC_WRONG_ARGUMENT_COUNT. Function cljs.core.println: called with 0 argument(s). Function requires at least 1 argument(s) and no more than 1 argument(s). at .../hello-world/release/cljs/repl.js line 174 : 0
Comment by Mike Fikes [ 05/Feb/16 11:57 AM ]

Thanks Rohit,

I get errors for a lein new mies hello-world project, but they are different than the one you quote above.

I do get two JSC_WRONG_ARGUMENT_COUNT diagnostics:

ERROR: JSC_WRONG_ARGUMENT_COUNT. Function goog.net.WebSocket.prototype.isOpen: called with 1 argument(s). Function requires at least 0 argument(s) and no more than 0 argument(s). at /Users/mfikes/Desktop/foobar/hello-world/release/clojure/browser/net.js line 591 : 7
ERROR: JSC_WRONG_ARGUMENT_COUNT. Function goog.net.WebSocket.prototype.close: called with 1 argument(s). Function requires at least 0 argument(s) and no more than 0 argument(s). at /Users/mfikes/Desktop/foobar/hello-world/release/clojure/browser/net.js line 613 : 7

Then when revising the project to use the compiler built with the attached patch, I tried adding

:lint-checks :off

to the :closure-warnings map, but this doesn't make these go away.

Hrm... I wonder what explains the difference.

Comment by Rohit Aggarwal [ 05/Feb/16 12:24 PM ]

Mike,
You are correct about the warning with the patch.

:lint-checks :off

But I see that the number of errors is greatly reduced for me.

If it helps, I am using OS X 10.11.4 and Java 1.8.0_71

Comment by Mike Fikes [ 05/Feb/16 12:49 PM ]

I'm seeing no effect with :lint-checks :off.

I'm on OS X 10.11.3 with Java 1.8.0_72, and I'm trying this against the current master of the ClojureScript tree.





[CLJS-1550] Enhance docstring for extend-type wrt type-sym Created: 22/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Completed Votes: 1
Labels: docstring

Attachments: Text File CLJS-1550.patch    
Patch: Code

 Description   

At times, people will use js/String, or not have a way to know about the semantics of default, etc.

Add copy to the docstring along the lines:

type-sym may be
   * default, meaning the definitions will apply for any value, unless an extend-type exists for one of the more specific cases below.
   * nil, meaning the definitions will apply for the nil value.
   * any of object, boolean, number, string, array, or function, indicating the definitions will apply for values of the associated base JavaScript types. Note that, for example, string should be used instead of js/String.
   * a JavaScript type not covered by the previous list, such as js/RegEx.
   * a type defined by deftype or defrecord.


 Comments   
Comment by Mike Fikes [ 22/Jan/16 5:38 PM ]

Attached patch produces this output:

cljs.user=> (doc extend-type)
-------------------------
cljs.core/extend-type
([type-sym & impls])
Macro
  Extend a type to a series of protocols. Useful when you are
  supplying the definitions explicitly inline. Propagates the
  type as a type hint on the first argument of all fns.

  type-sym may be

   * default, meaning the definitions will apply for any value,
     unless an extend-type exists for one of the more specific
     cases below.
   * nil, meaning the definitions will apply for the nil value.
   * any of object, boolean, number, string, array, or function,
     indicating the definitions will apply for values of the
     associated base JavaScript types. Note that, for example,
     string should be used instead of js/String.
   * a JavaScript type not covered by the previous list, such
     as js/RegExp.
   * a type defined by deftype or defrecord.

  (extend-type MyType
    ICounted
    (-count [c] ...)
    Foo
    (bar [x y] ...)
    (baz ([x] ...) ([x y & zs] ...))

nil
Comment by David Nolen [ 04/Feb/16 4:09 PM ]

fixed https://github.com/clojure/clojurescript/commit/c0a4e07426b67659ae575cc731e83f7007c36c43

Comment by Mike Fikes [ 04/Feb/16 8:58 PM ]

Confirmed fixed with cljs.jar and downstream cljs.js client.





[CLJS-1551] Self-host: assert-args dormant in macros Created: 22/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Completed Votes: 0
Labels: bootstrap

Attachments: Text File CLJS-1551-1.patch    
Patch: Code and Test

 Description   

In bootstrap ClojureScript, if you invoke a macro that employs assert-args, the arguments will not be checked. An example of this would be

(let [a])

In JVM-based ClojureScript, this triggers:

Caused by: java.lang.IllegalArgumentException: let requires an even number of forms in binding vector

In bootstrap ClojureScript, the macroexpansion blindly succeeds, but then the analyzer processes

(let* [a])
and emits a warning

bindings must be vector of even number of elements at line 1

The root cause of this is that the {let} macro is making use of the {assert-args} macro, and in bootstrap ClojureScript, since the {let} macro is being processed as ClojureScript, the {assert-args} macro must be in a "higher" stage.

I did an experiment that moved this to a higher stage and, indeed {(let [a])} results in an exception being thrown in bootstrap indicating:

let requires an even number of forms in binding vector

I haven't yet produced a minimal repro, but I suspect this will be possible with the self-host unit tests.



 Comments   
Comment by Mike Fikes [ 23/Jan/16 10:42 AM ]

Minimal repro, in the form of a self-host unit test:

(deftest test-CLJS-1551
  (cljs/eval-str st
    "(if-let [x true y true] 3)"
    nil
    {:eval node-eval}
    (fn [{:keys [error value]}]
      (is (nil? value))
      (is (= "if-let requires exactly 2 forms in binding vector at line 1 " (ex-message (ex-cause error))))))
  (cljs/eval-str st
    "(if-let [x true] 1 2 3)"
    nil
    {:eval node-eval}
    (fn [{:keys [error value]}]
      (is (nil? value))
      (is (= "if-let requires 1 or 2 forms after binding vector at line 1 " (ex-message (ex-cause error))))))
  (cljs/eval-str st
    "(if-let '(x true) 1)"
    nil
    {:eval node-eval}
    (fn [{:keys [error value]}]
      (is (nil? value))
      (is (= "if-let requires a vector for its binding at line 1 " (ex-message (ex-cause error)))))))
Comment by Mike Fikes [ 23/Jan/16 10:52 AM ]

The attached patch (version 1) adds an entirely new namespace to solve the problem, and as such probably requires extra thought / review. It passes tests and you can also see that it works for regular bootstrap if you do `script/noderepljs` and evaluate

(for [a (range) b] 3)

In this case, the top level exception is still {clojure.lang.ExceptionInfo}, but the root cause changes to {clojure.lang.ExceptionInfo} instead of the previous {java.lang.IllegalArgumentException}. (This difference is due to the use of ex-info in assert-args, and is unlikely to be problematic, but calling it out specifically.)

Comment by David Nolen [ 04/Feb/16 4:07 PM ]

fixed https://github.com/clojure/clojurescript/commit/8f7b1d02d113e49965ebcfe418454b93ba45a6e5

Comment by Mike Fikes [ 04/Feb/16 8:56 PM ]

Confirmed fixed with downstream cljs.js client, and confirmed no regression with cljs.jar.





[CLJS-1552] doc for & should match fn Created: 27/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Completed Votes: 0
Labels: docstring

Attachments: Text File CLJS-1552.patch    
Patch: Code

 Description   

If you do (doc &) the intent is that the doc for fn would be displayed.

Currently you get synthetically constructed (but empty) doc as if fn is a special form.

cljs.user=> (doc &)
-------------------------
fn
Special Form
  nil

  Please see http://clojure.org/special_forms#fn

nil


 Comments   
Comment by Mike Fikes [ 27/Jan/16 9:00 AM ]

With the patch, and exercising doc facility from another namespace:

cljs.user=> (ns foo.core)
nil
foo.core=> (require '[cljs.repl :refer-macros [doc]])
nil
foo.core=> (doc &)
-------------------------
cljs.core/fn
([& sigs])
Macro
  params => positional-params* , or positional-params* & next-param
  positional-param => binding-form
  next-param => binding-form
  name => symbol

  Defines a function

nil
Comment by David Nolen [ 04/Feb/16 4:05 PM ]

fixed https://github.com/clojure/clojurescript/commit/89ec69f06919afaa102a078606dc0ab8b1015fb5

Comment by Mike Fikes [ 04/Feb/16 8:54 PM ]

Confirmed fixed with cljs.jar.





[CLJS-1488] cljs.repl/source Cannot read source of cljs functions that use #js reader Created: 21/Nov/15  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145, 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Tony Kay Assignee: David Nolen
Resolution: Completed Votes: 0
Labels: None
Environment:

OSX


Attachments: Text File CLJS-1488.patch    
Patch: Code

 Description   

The clsj.repl/source function fails to pull source for cljs that uses #js reader tag. Reports "No reader found for tag".

To reproduce, try (source str).



 Comments   
Comment by Mike Fikes [ 29/Jan/16 8:49 PM ]

I've added a patch to bind the needed reader capability.

Comment by David Nolen [ 04/Feb/16 4:02 PM ]

fixed https://github.com/clojure/clojurescript/commit/d63ad27bbf431274428b9ff391779bac04fef2d0

Comment by Mike Fikes [ 04/Feb/16 8:53 PM ]

Confirmed fixed with cljs.jar.





[CLJS-1557] Make special-symbol? return true for catch and finally Created: 31/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.228
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Mike Fikes Assignee: David Nolen
Resolution: Completed Votes: 0
Labels: None

Attachments: Text File CLJS-1557.patch    
Patch: Code

 Description   

In Clojure,

(special-symbol? 'catch)
and
(special-symbol? 'finally)
both evaluate to true.

Do this in ClojureScript

1. for consistency
2. because cljs.tools.reader (tools.reader-1.0.0-alpha3) makes use of special-symbol? and without this change syntax quoting doesn't work properly, making it difficult to write bootstrapped macros

With respect to the second item above

`(try (catch) (finally))

evaluates to

(try (cljs.user/catch) (cljs.user/finally))

if using cljs.tools.reader tools.reader-1.0.0-alpha3 with bootstrap ClojureScript.



 Comments   
Comment by David Nolen [ 04/Feb/16 3:59 PM ]

fixed https://github.com/clojure/clojurescript/commit/609400910e983849e5b7932a4b7d0b0dda465df6

Comment by Mike Fikes [ 04/Feb/16 8:50 PM ]

Confirmed fixed with cljs.jar and downstream cljs.js client. In particular, using tools.reader-1.0.0-alpha3,

`(try (catch) (finally))

syntax quotes properly.





[CLJS-1542] Self-host: cljs/compile-str not handling errors properly Created: 10/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145, 1.7.228
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Matt Huebert Assignee: Mike Fikes
Resolution: Completed Votes: 0
Labels: bootstrap

Attachments: Text File CLJS-1542.patch    
Patch: Code and Test

 Description   

cljs/compile-str throws on some errors which cljs/eval[-str] handles gracefully.

Example: on `(fn [] (let [x 7 y] (prn y)))`, cljs/eval-str returns:

{:message "Could not eval eval-str", :data {:tag :cljs/analysis-error}, :cause #error {:message "bindings must be vector of even number of elements at line 1 ", :data {:file nil, :line 1, :column 8, :tag :cljs/analysis-error}}}

whereas cljs/compile-str throws:

Uncaught Error: No method in multimethod 'cljs.compiler/emit*' for dispatch value:
cljs$core$throw_no_method_error @ core.cljs:9611
cljs.core.MultiFn.call.G_10698_2 @ core.cljs:9626
cljs.core.MultiFn.call.G__10698 @ core.cljs:9613
cljs$compiler$emit @ compiler.cljc:170
(anonymous function) @ js.cljs:630
cljs$js$compile_str_STAR__$_compile_loop @ js.cljs:630
cljs$js$compile_str_STAR_ @ js.cljs:603
cljs.js.compile_str.cljs$core$IFn$_invoke$arity$5 @ js.cljs:674
cljs$js$compile_str @ js.cljs:644
(anonymous function) @ core.cljs:28

Minimal example: https://github.com/mhuebert/mies-cljs.js



 Comments   
Comment by Mike Fikes [ 31/Jan/16 9:33 PM ]

If you use cljs.js/compile-str on a form that cannot be analyzed, then the analysis error is wrapped, but inadvertently passed on to compilation as an AST structure. This results in the compiler derailing because it tries to process a nil :op.

The fix is to employ the same pattern used in cljs.js/eval-str, namely: Wrap successful analysis in a {:value ast} map, and then additionally check for an :error key in the result and cb early, otherwise extract the :value and continue on to compilation.

With the patch this error should be produced:

#error {:message "Could not compile ", :data {:tag :cljs/analysis-error}, :cause #error {:message "bindings must be vector of even number of elements at line 1 ", :data {:file nil, :line 1, :column 8, :tag :cljs/analysis-error}}}
Comment by David Nolen [ 04/Feb/16 3:57 PM ]

fixed https://github.com/clojure/clojurescript/commit/4b44c3e4d48c14d47eaa46c203fcc28df16d3941

Comment by Mike Fikes [ 04/Feb/16 8:44 PM ]

Confirmed fixed with downstream bootstrapped client.





[CLJS-620] Warnings are generated when using a macro in argument position Created: 14/Oct/13  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: Next

Type: Defect Priority: Minor
Reporter: Julien Eluard Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: None

Attachments: File CLJS-620.diff     Text File CLJS-620.patch    
Patch: Code

 Description   

Using a macro in argument position (e.g. (map macro [])) generates a warning:
WARNING: Use of undeclared Var test/node at line 4 src/test.cljs

Find a reproduction project here.



 Comments   
Comment by Jozef Wagner [ 15/Oct/13 3:30 AM ]

and what would you like, a better warning? Clojurescript allows same name for macro and for function, so you can both have macro + and fn +. Macro version will be used when is first in the list, fn version otherwise.

Comment by Jonas Enlund [ 15/Oct/13 3:38 AM ]

For reference, Clojure generates the following error message:

user=> (map when [])
CompilerException java.lang.RuntimeException: Can't take value of a macro: #'clojure.core/when, compiling:(NO_SOURCE_PATH:1:1)

The "obvious" approach would be to add

(when-let [m (get-expander sym env)]
  (throw (error env (str "Can’t take value of a macro: " m))))

to resolve-var[1]. Unfortunately this doesn’t work in ClojureScript due to the way inlining works. A simple workaround is to add {:inline true} metadata to macros that are later redefined as functions in core.cljs and check for invalid macro usage like this:

(when-let [m (get-expander sym env)]
  (and (-> m meta :inline not)    
       (throw (error env (str "Can’t take value of a macro: " m)))))

Another approach would perhaps be to rethink how inlining works as it seems kind of brittle to have macros in cljs/core.clj with the same name as functions in cljs/core.cljs (especially since both namespaces are auto-imported. Is cljs.core/inc a function, a macro, or both?). Maybe there’s a better way?

[1] https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/analyzer.clj#L193

Comment by Julien Eluard [ 15/Oct/13 6:23 AM ]

My bad, didn't realize it didn't make sense. Of course it's obvious now. I was confused by recent changes around function/macro name validation.
Now the warning could probably be improved a little but that doesn't seem very important. The Clojure warning is not that much better.

Comment by David Nolen [ 15/Oct/13 11:58 AM ]

We're not going to change how inlining works - the whole point is that we can reuse the same names. Adding :inline metadata seems like a promising way to warn of incorrect usage of inlining macros.

Comment by Mike Fikes [ 01/Feb/16 6:34 PM ]

Attaching CLJS-620.patch for comment.

It may at least improve things by producing the warning regarding it being a macro.

cljs.user=> (map when [])
WARNING: Can't take value of macro cljs.core/when at line 1 <cljs repl>
()

One advantage of the patch is it is pretty small.

A disadvantage is that it kind-of overloads the existing :undeclared-var warning. (The alternative would be to introduce a completely new warning that is emitted in exactly this situation.)

Comment by David Nolen [ 04/Feb/16 3:53 PM ]

fixed https://github.com/clojure/clojurescript/commit/58cd6be66877ba43d1642138360b916de0983917

Comment by Mike Fikes [ 04/Feb/16 8:41 PM ]

Confirmed fixed with cljs.jar and downstream bootstrap.





[CLJS-794] RegExp flags are being dropped by `string/replace` Created: 09/Apr/14  Updated: 04/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: Next

Type: Defect Priority: Minor
Reporter: Peter Taoussanis Assignee: Unassigned
Resolution: Unresolved Votes: 2
Labels: None

Attachments: Text File CLJS-794.patch    

 Description   

`clojure.string/replace` accepts either a string or pattern argument to match against.

For pattern arguments, the current implementation discards the original RegExp and creates a new one:
`(.replace s (js/RegExp. (.-source match) "g") replacement)`

This is killing any flags on the original pattern (case insensitivity, for example). As a result, things like `(str/replace "Foo" #"(?i)foo" "bar")` currently fail. The result is "Foo", it should be "bar".

Can I submit a patch that'll check for and preserve other (i/m/y) flags?

Thanks



 Comments   
Comment by David Nolen [ 02/Dec/14 5:42 AM ]

A patch is welcome for this. Thanks.

Comment by lvh [ 27/Jul/15 11:55 AM ]

This appears to be identical to CLJS-485, which has a patch (by someone who hasn't signed the CLA yet).

Comment by Jake McCrary [ 04/Feb/16 6:43 PM ]

This patch changes string/replace-all to respect flags that were set on regexp passed as an argument.





[CLJS-1540] Arity-1 version of js->clj should pass keyword arguments for default options, as expected by js->clj Created: 07/Jan/16  Updated: 04/Feb/16

Status: Open
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Nicolás Berger Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Attachments: Text File js-clj-keyword-opts.patch    
Patch: Code

 Description   

Arity-1 version of js->clj is passing the map {:keywordize-keys false} as the default options of js->clj, when it should pass the keyword arguments :keywordize-keys false. It's working by luck, because keywordize-keys ends being nil by default, which is falsey. But it's confusing for anyone reading the code and trying to pass {:keywordize-keys true} with the expectation that it would keywordize the keys.

References: http://dev.clojure.org/jira/browse/CLJS-750 and https://groups.google.com/forum/#!topic/clojurescript/Dis6845WL5U



 Comments   
Comment by Mike Fikes [ 29/Jan/16 7:59 PM ]
Comment by David Nolen [ 04/Feb/16 4:05 PM ]

Patch looks OK, Nicolas have you submitted your CA? Thanks.

Comment by Nicolás Berger [ 04/Feb/16 5:00 PM ]

Yes I did, David





[CLJS-1499] Circular dependency checking for nses that self-require Created: 01/Dec/15  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.145
Fix Version/s: Next

Type: Defect Priority: Minor
Reporter: David Nolen Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: None


 Description   

Currently triggers StackOverflow



 Comments   
Comment by Mike Fikes [ 29/Jan/16 8:17 PM ]

I believe we can close this one:

(ns foo.core
  (:require foo.core))

yields

cljs.user=> (require 'foo.core)
clojure.lang.ExceptionInfo: Assert failed: Circular dependency detected, cljs.user -> foo.core -> foo.core

with the changes made for CLJS-1537.





[CLJS-1424] (def) or (defn) will throw an obscure exception Created: 14/Aug/15  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: 1.7.48
Fix Version/s: None

Type: Defect Priority: Minor
Reporter: Sean Grove Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: cljs


 Description   

Simply trying to compile `(def)` will throw an exception: "Caused by: clojure.lang.ArityException: Wrong number of args (1) passed to: analyzer/eval1440/fn-1441/pfn-1442"

While obviously not a valid construct, the error could be significantly more descriptive, and also show the line number where it happened.

A similar issue happens with `(defn)`: "Caused by: clojure.lang.ExceptionInfo: Wrong number of args (2) passed to: core/defn--12230"



 Comments   
Comment by Mike Fikes [ 29/Jan/16 9:03 PM ]

FWIW, the defn case is a little better now with CLJS-1516, reporting 0 args passed:

cljs.user=> (defn)
clojure.lang.ExceptionInfo: Wrong number of args (0) passed to: core/defn--3475 at line 1 <cljs repl> {:file "<cljs repl>", :line 1, :column 1, :tag :cljs/analysis-error}




[CLJS-1554] AbstractMethodError trying to deftype with Object Created: 31/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Defect Priority: Major
Reporter: James Laver Assignee: Unassigned
Resolution: Declined Votes: 0
Labels: bug, interop
Environment:

clojure 1.7, clojurescript 1.7.228



 Description   

I get this obscure message trying to upgrade timbre to cljs 1.7.228 (from 0.0.2727) and I have no idea what's changed.

java.lang.AbstractMethodError: Method cljsbuild/compiler/SourcePaths._find_sources(Ljava/lang/Object;)Ljava/lang/Object; is abstract, compiling/private/var/folders/k6/glc05svd5d194k8kgqfwkrph0000gn/T/form-init382463497803898384.clj:1:124)

Code that triggers it is here:
https://github.com/jjl/automat/blob/cljc/src/automat/fsm.cljc#L25

I've eliminated my cljc as being the cause by bumping the clojurescript version on the original code and seeing the same error.



 Comments   
Comment by Thomas Heller [ 31/Jan/16 8:05 AM ]

You also need to upgrade the lein-cljsbuild version, not sure what is current but I believe at least 1.1.1 is required.

Comment by James Laver [ 31/Jan/16 9:02 AM ]

Ah, thanks. That's working now.





[CLJS-1545] Add option to ignore JCS_UNSAFE_THIS warning Created: 14/Jan/16  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Minor
Reporter: Daniel Compton Assignee: Unassigned
Resolution: Declined Votes: 0
Labels: None


 Description   

When using https://github.com/binaryage/dirac, we get this warning with a prod build.

com.google.javascript.jscomp.LoggerErrorManager println
WARNING: ../parts/devtools/sanity_hints.js:108: WARNING - dangerous use of this in static method devtools.sanity_hints.type_error_to_string
var self = this;

Is it possible to extend :closure-warnings to add JSC_UNSAFE_THIS to the set of warnings that we can enable/disable? Details on the warnings: https://developers.google.com/closure/compiler/docs/error-ref?hl=en#warn

JSC_UNSAFE_THIS is defined at https://github.com/google/closure-compiler/blob/v20151015/src/com/google/javascript/jscomp/CollapseProperties.java#L88-L90



 Comments   
Comment by David Nolen [ 18/Jan/16 2:46 PM ]

Patch welcome.

Comment by Antonin Hildebrand [ 01/Feb/16 9:19 AM ]

This was actually a problem in cljs-devtools code.

After reading https://developers.google.com/closure/compiler/docs/limitations?hl=en I was able to get rid of the warning with this change:

https://github.com/binaryage/cljs-devtools/commit/e5fad13e4565ddeac59ed06cfe551455b47303f2

But Daniel, this points out another issue in your build setup. You should not be compiling and requiring cljs-devtools in :advanced builds of your project. cljs-devtools is designed for development mode only, it cannot work under :advanced because of CLJS-1249.





[CLJS-741] seq error message readability is not optimal Created: 02/Jan/14  Updated: 04/Feb/16  Resolved: 04/Feb/16

Status: Closed
Project: ClojureScript
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Trivial
Reporter: Julien Eluard Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: None

Attachments: Text File cljs_741.patch    

 Description   

When calling seq on an invalid type an errr with following message is thrown: :keywordis not ISeqable.

Adding a space between the argument and the message improves the readability.



 Comments   
Comment by David Nolen [ 02/Jan/14 12:58 PM ]

Excellent thanks!

Comment by Mike Fikes [ 02/Feb/16 5:57 PM ]

The attached patch no longer applies owing to source file name changes.

Comment by Mike Fikes [ 02/Feb/16 6:04 PM ]

We can close, this has already been addressed: https://github.com/clojure/clojurescript/commit/f9a33372a9122f940310588435e210312da685f9





Generated at Mon Feb 08 06:48:56 CST 2016 using JIRA 4.4#649-r158309.