[ClojureScript] ANN: ClojureScript 1.11.132

2024-01-24 Thread David Nolen
Please see https://clojurescript.org/news/2024-01-24-release for details.

Thanks!
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9OadZtVKd79G385_%3Dcz9wHn-F7kSj7jMMvtN7DD%3DuS6M20Q%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.914

2021-12-20 Thread David Nolen
Please see https://clojurescript.org/news/2021-12-20-release for details.

Thanks!
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9OadEKdDSpjNCyXt3QEcBcndxbu3hzSbEtB9fyvKvk-SiNg%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.891

2021-11-04 Thread David Nolen
Please see https://clojurescript.org/news/2021-11-04-release for details

Thanks!
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9OafQ4BAiGHQC6GxKbroby6s-OJEvazyB3j%2BOPX1QAE6%2BgQ%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.866

2021-05-25 Thread David Nolen
Please see https://clojurescript.org/news/2021-05-24-release for details.

Thanks!
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9Oac1zVxxYYbq7Zwd0c5mfh2xTHoog9eWnZey2EZfO48SnA%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.844

2021-04-07 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Please refer to the announce post for the details:
https://clojurescript.org/news/2021-04-06-release

As always, feedback welcome!

David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9Oaf115PcQr3ZqGV42oXoPYJxgibt6mEj3PPUsU%2B17z_TNw%40mail.gmail.com.


Re: [ClojureScript] Figwheel 0.2.5 and ClojureScript 1.10.758

2020-06-04 Thread David Nolen
I believe the latest Figwheel releases are addressing `:bundle` support.

David

On Wed, May 20, 2020 at 12:14 AM Pete Doherty  wrote:

> Hi all,
>
> I'm having trouble getting the latest versions of Figwheel-main (0.2.5)
> and ClojureScript (1.10.758) to (fully) work together.
>
> I've been able to rework the CLJS Webpack guide
>  enough to get Figwheel
> compiling the app and serving it via a custom index.html page. The
> Figwheel-main changelog states that this is required in order to use the
> bundle feature.
>
> Unfortunately, I think I'm bypassing some of Figwheel's default REPL
> configuration. The Figwheel scripts all get loaded as part of my compiled
> Webpack bundle but the REPL script never connects to the Clojure REPL.
> There are some differences in the REPL script's log output between my
> project and the Figwheel-main Vim-Fireplace tutorial
> .
> This certainly seems to be an indication that I'm doing something wrong,
> but I'm not sure where to begin addressing the issue.
>
> My project:
> [goog.net.WebSocket] Opening the WebSocket on 
> ws://localhost:9500/figwheel-connect?fwsid=c0e05c8b-f386-45f1-a706-874d1f3e3fe7
> 
>
> The Figwheel tutorial:
> [goog.net.WebSocket] Opening the WebSocket on ws:
> //localhost:9500/figwheel-connect?fwprocess=0f3498&fwbuild=dev&fwsid=e25756c1-5784-46f5-8e82-739fed9d18dd&fwsname=Yan
>
> Does any of  the above speak to anyone who knows these tools better than
> me? I do have some experience with both Figwheel and ClojureScript, but
> it's been a *long* time.
>
> Thanks!
>
> Pete
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojurescript/0bb75d1b-62b6-4f1c-ba6b-3b4b61aeacbd%40googlegroups.com
> 
> .
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9OaezA8WWSv-kV0Vc0PRTqzcqcAEh2JBKRn20k5H1bpjcvA%40mail.gmail.com.


Re: [ClojureScript] Re: ANN: ClojureScript 1.10.741

2020-04-27 Thread David Nolen
There are some issues with Figwheel and the latest releases that need to be
sorted out. Bruce Hauman is aware and on it.

David

On Sat, Apr 25, 2020 at 1:45 AM Rangel Spasov  wrote:

> Just tried bumping up my React Native project to 1.10.741.
>
> The compilation seems to get stuck (doesn't finish, I waited a bunch and
> usually only takes a few seconds) at the following warnings (which are new,
> do not appear with ClojureScript 1.10.597).
>
> [Figwheel:WARNING] Compile Warning: Use of undeclared Var goog.structs/Map
>  target/public/cljs-out/ios/taoensso/encore.cljs   line:2683  column:16
> [Figwheel:WARNING] Compile Warning: Use of undeclared Var
> goog.net.XhrIo/send  target/public/cljs-out/ios/figwheel/repl.cljc
> line:313  column:8
> [Figwheel:WARNING] Compile Warning: Use of undeclared Var
> goog.net.XhrIo/send  target/public/cljs-out/ios/figwheel/repl.cljc
> line:516  column:11
> [Figwheel:WARNING] Compile Warning: Use of undeclared Var
> goog.net.XhrIo/send  target/public/cljs-out/ios/figwheel/repl.cljc
> line:313  column:8
> [Figwheel:WARNING] Compile Warning: Use of undeclared Var
> goog.net.XhrIo/send  target/public/cljs-out/ios/figwheel/repl.cljc
> line:516  column:11
>
> It might be a Figwheel issue but I'm not sure, decided to post here in
> case somebody has a similar problem or a solution.
>
> On Friday, April 24, 2020 at 10:10:56 AM UTC-7, David Nolen wrote:
>>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Please refer to the announce post for the details:
>> https://clojurescript.org/news/2020-04-24-release
>>
>> This release also features a significant enhancement when building
>> against node_modules:
>> https://clojurescript.org/news/2020-04-24-bundle-target
>>
>> As always, feedback welcome!
>>
>> David
>>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojurescript/15f7d151-2ca2-4823-bd75-24ff86a6b608%40googlegroups.com
> <https://groups.google.com/d/msgid/clojurescript/15f7d151-2ca2-4823-bd75-24ff86a6b608%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9Oad-ZovchcpgEb_5Pmwrkvd0%3DPNc2tU8bkXuTGmzzPRRYg%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.741

2020-04-24 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Please refer to the announce post for the details:
https://clojurescript.org/news/2020-04-24-release

This release also features a significant enhancement when building against
node_modules:
https://clojurescript.org/news/2020-04-24-bundle-target

As always, feedback welcome!

David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojurescript/CAPC9OaecGyHHJGEjqoDqnfg0zSGJ%2BTRzVPiNBwfaPniNr54aVg%40mail.gmail.com.


[ClojureScript] ANN: ClojureScript 1.10.516

2019-01-31 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Please refer to the announce post for the details:
https://clojurescript.org/news/2019-01-31-release

As always, feedback welcome!

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.10.439

2018-11-05 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.10.439"]

Please refer the announce post for the details:
https://clojurescript.org/news/2018-11-02-release

As always, feedback welcome!

## 1.10.439

### Changes
* CLJS-2904: Default :npm-deps to false
* CLJS-2878: Update Closure Compiler to v20180805
* CLJS-2827: Avoid var special in core macros for private var access
* CLJS-2819: Warn on non-dynamic earmuffed vars
* CLJS-2806: Bump test.check to 0.10.0-alpha3
* CLJS-2815: Support string keys in :global-exports
* CLJS-2812: Support for overriding object printing
* CLJS-2805: Bump tools.reader to 1.3.0
* CLJS-1702: Warning when using private vars
* Align ClojureScript AST to tools.analyzer

### Enhancements
* CLJS-2903: Support fingerprinting
* CLJS-2897: cljs.main: Display initial REPL prompt sooner
* CLJS-2884: Support for GraalJS RC6
* CLJS-2859: Graal.JS: Enable high-res timers by default, allow
user-configuration
* CLJS-2831: Add a graaljs REPL environment
* CLJS-1997: Outward function type hint propagation
* CLJS-844: Optimize js->clj by switching to transients
* CLJS-2442: `set` and `vec` performance enhancements

### Fixes
* CLJS-2953: stest/with-instrument-disabled prints warning of private use
* CLJS-2728: Ability to disable macro spec checks
* CLJS-2843: s/explain of evaluated predicate yields :s/unknown
* CLJS-2951: Add a spec generator for some?
* CLJS-2940: Can't define nilable spec on undefined pred
* CLJS-2948: Stack overflow calling instrumented variadic fn with zero args
* CLJS-2793: Instrumenting breaks function with varargs
* CLJS-2934: Enhanced delay printing
* CLJS-2864: Optimize str macro for single arity case
* CLJS-1297: defrecord does not emit IKVReduce protocol
* CLJS-2937: docstring for to-array
* CLJS-2943: Update merge-with to use key / val
* CLJS-2941: seqable? should return true for nil
* CLJS-2915: Tests fail if directory has a period (.) in the path
* CLJS-2782: lein test fails if directory has hyphens
* CLJS-2911: Avoid infinite loop on infinite partitions
* CLJS-2906: cljs.main: Crash when with default REPL
* CLJS-2883: Instrumentation fails compilation with a large number of
spec'd functions
* CLJS-2896: Allow parallel analysis and compilation
* CLJS-2893: seq: use .-length instead of alength for strings
* CLJS-2890: fspec role in problem path is not useful
* CLJS-2887: Improve names in core macro specs
* CLJS-2891: stop including data in ex-info message
* CLJS-2888: Printing of spec problems buries the failing predicate which
should be more prominent
* CLJS-2861: Self-host: :checked-arrays not working
* CLJS-2852: Clojure imparity: ns-publics returns different arglists for
macros
* CLJS-2725: Doc on spec keywords
* CLJS-2665: Port clojure.spec.test.alpha/enumerate-namespace
* CLJS-2848: Default explain printer prints root val and spec
* CLJS-2846: [spec] s/tuple explain-data :pred problem
* CLJS-2847: s/coll-of and s/every gen is very slow if :kind specified
without :into
* CLJS-2841: [spec] instrument exception doesn't contain function name in
ex-data
* CLJS-2842: [spec] Clarify s/every docstring for :kind
* CLJS-2845: [spec] generate random subsets of or'd required keys in map
specs
* CLJS-2844: [spec] Add support for undefining a spec
* CLJS-2840: [spec] s/keys explain-data :pred problem
* CLJS-2839: [spec] s/& explain-data :pred problem
* CLJS-2838: [spec] s/& does not check preds if regex matches empty
collection
* CLJS-2837: [spec] `cat` specs should verify value is sequential
* CLJS-2541: binding not made in parallel
* CLJS-2832: Bad code gen for `((not empty?) "foo")` when compiled with no
optimizations
* CLJS-2855: Browser REPL prints empty string after require
* CLJS-2821: Update doto docstring to not use Java example
* CLJS-2817: Suppress private var warnings for specs on private vars
* CLJS-2822: cljs.core.specs.alpha: Map bindings should be `:kind map?`
* CLJS-2829: Fix deep object property access for :global-exports
* CLJS-2816: Skip non-string package.json browser entry values
* CLJS-2814: Fix munge-node-lib/global-export on self-host
* CLJS-2811: cljs-1537-circular-deps fail on Windows
* CLJS-2807: Macroexpand failure with set literal
* CLJS-2799: Handle nth on seqables with negative indexes
* CLJS-2798: ChunkCons -next doesn't handle nil more
* CLJS-2589: allow / as a protocol method name in cljs

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Is this a ClojureScript compiler bug or intended result?

2018-08-13 Thread David Nolen
The compiler emits to *out* during compilation. You will need to print to
some other output stream like *err* for now.

David

On Mon, Aug 13, 2018 at 2:41 AM Philos Kim  wrote:

> I wrote a macro in ClojureScript and wanted to test the macro by using
> println function like this,
>
> ;; qna/macro.clj
> (ns qna.macro)
>
> (defmacro my-add [a b]
>   (println "a =" a "b =" b)   ; <-- Here
>   `(+ ~a ~b))
>
>
> ;; qna/main.cljs
> (ns qna.main
>   (:require-macros [qna.macro :refer [my-add]]))
>
> (defn ^:export main []
>   (my-add 2 3))
>
>
> resources/public/index.html and project.clj are like the following.
>
> ;; resources/public/index.html
> 
> 
>   
> 
> QnA Demo
>   
>
>   
> QnA Demo
> 
>
> 
> qna.main.main();
>   
> 
>
>
> ;; project.clj
> (defproject qna "0.1.0-SNAPSHOT"
>   :dependencies [[org.clojure/clojure "1.9.0"]
>  [org.clojure/clojurescript "1.10.339"]]
>   :min-lein-version "2.6.0"
>   :plugins [[lein-cljsbuild "1.1.7"]
> [lein-figwheel "0.5.16"]]
>   :clean-targets ^{:protect false}
>   ["target"
>"resources/public/js/out"
>"resources/public/js/main.js"]
>   :cljsbuild
>   {:builds
>[{:id "dev"
>  :source-paths ["src"]
>  :compiler {:main  qna.main
> :output-to "resources/public/js/main.js"
> :output-dir "resources/public/js/out/"
> :asset-path "js/out/"
> :optimizations :none
> :source-map true
> :pretty-print true} }]})
>
> When I open the above .html file in the browser, I encounter the following
> error.
>
> Uncaught SyntaxError: Unexpected identifier in main.js:4
>
> And the compiled main.js file is like this.
>
> // Compiled by ClojureScript 1.10.339 {}
> goog.provide('qna.main');
> goog.require('cljs.core');
> a = 2 b = 3  // <-- embedded printed result
> qna.main.main = (function qna$main$main(){
> return ((2) + (3));
> });
> goog.exportSymbol('qna.main.main', qna.main.main);
>
> //# sourceMappingURL=main.js.map
>
>
> To sum up, whenever I evalute (println ...) within a macro, the printed
> result doesn't go to the REPL but is embedded into the compiled .js file.
>
> If this is a bug of ClojureScript, I will register this error in the
> ClojureScript JIRA.
>
>
>
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Clojurescript 1.10.238 fails to compile when using node modules for browser target in windows

2018-03-27 Thread David Nolen
I believe there are issues with React 16 and Google Closure Compiler module
processing, try React 15 instead for now.

David

On Tue, Mar 27, 2018 at 3:24 AM, Marat Khafizov  wrote:

> Hey there.
>
> I'm trying to use node destribution of reactjs with js module require.
>
> (defproject compile-cljs-node-modules-react "0.1.0-SNAPSHOT"
>   :description "FIXME: write description"
>   :url "http://example.com/FIXME";
>   :license {:name "Eclipse Public License"
> :url "http://www.eclipse.org/legal/epl-v10.html"}
>   :dependencies [[org.clojure/clojure "1.8.0"]
>  [org.clojure/clojurescript "1.10.238"]]
>   :plugins [[lein-cljsbuild "1.1.7"]]
>
>   :cljsbuild
>   {:builds {:app
>   {:source-paths ["src"]
>:compiler
>{:main   "compile-cljs-node-modules-react.core"
> :asset-path"/js/out"
> :output-to "target/cljsbuild/public/js/app.js"
> :output-dir"target/cljsbuild/public/js/out"
> :source-maptrue
> :npm-deps  {:react "16.2.0" :react-dom "16.2.0"}
> :install-deps  true
> :optimizations :none
> :pretty-print  true)
>
>
> SImple cljs file:
> (ns compile-cljs-node-modules-react.core
>   (:require ["react-dom/server" :as dom-server]
> [react :as react]))
>
> (defn render-simple-markup []
>   (dom-server/renderToString (react/createElement "div" nil "Hello,
> world!")))
>
> When I run
> lein cljsbuild once app
>
> I get the following error:
> [eval]:85
> !id.startsWith(goog:);
>
>
> SyntaxError: missing ) after argument list
> at createScript (vm.js:80:10)
> at Object.runInThisContext (vm.js:139:10)
> at Object. ([eval]-wrapper:6:22)
> at Module._compile (module.js:635:30)
> at evalScript (bootstrap_node.js:462:27)
> at startup (bootstrap_node.js:163:9)
> at bootstrap_node.js:608:3
>
> OS: windows 7
> npm version: 5.5.1
> node v8.9.3
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.10.238, cljs.main & more

2018-03-26 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.10.238"]

This release contains a very large number of enhancements. Please
refer to the announce post for details:
https://clojurescript.org/news/2018-03-26-release

As always, feedback welcome!

## 1.10.238

### Enhancements
* cljs.main, simple command line access to Compiler & REPLs
* cljs.server.* namespaces for integration with -Dclojure.server.repl
* :aot-cache compiler to enable global AOT caching of dependencies in JARs
* :stable-names compiler flag, to support vendorization when using
:modules,
  defaults to true when using :modules.
* Add :webworker & :nashorn target
* pREPL implementation (usage requires Clojure 1.10.0-alpha)

### Changes
* * CLJS-2592: :npm-deps using ES6 modules with .mjs extensions are not
detected correctly
* AOTed ClojureScript artifact is now the default, for sources only use the
  "slim" Maven classifier
* Bump Closure Compiler
* REPL now show uniform prompts
* CLJS-2660: Add cljs.core/eval which, delegates to an overridable *eval*
* CLJS-2375: Remove AMD Module Support
* CLJS-2413: Port core.specs.alpha to ClojureScript
* CLJS-2423: Allow custom :output-wrapper function
* Map entries are no longer two element vectors, now MapEntry instances
* *print-fn* automatically set
* CLJS-2561: AOT compile browser REPL client js
* CLJS-2581: Create a cljs.repl/*repl-env* dynamic var and bind it around
cljs repl loops

### Fixes
* CLJS-2680: Passing :watch-fn via --compile-opts to cljs.main
* CLJS-2692: cljs.core.specs.alpha: Import list needs to require quote
* CLJS-2696: Large code size in Clojurescript 1.10.x for minimal code with
optimizations advanced
* CLJS-2699: Use higher-level Closure API for module-processing
* CLJS-2691: goog.require in module-processed files shouldn't require
goog.base
* CLJS-2689: Don't try to use node resolve for goog: modules
* CLJS-2676: Bad cljs.loader behavior for modules with multiple provides
* CLJS-2673: Regression: Can't require cljs.js
* CLJS-2650: Fix JAR compilation of cljs.loader
* CLJS-2671: Double analysis warning for source in JAR with AOT cache
* CLJS-2643: Socket REPL output can be directed to the wrong place
* CLJS-2670: Update cljs.compiler/warning-types
* CLJS-2491: Inference warnings are not reported
* CLJS-2653: REPL crash when mapping stacktrace in Chrome for js/blah
* CLJS-2639: Compiler crash when using aot cache with parallel compile
* CLJS-2520: Synthesize ClojureScript version if using non-built
ClojureScript dep
* CLJS-2522: Handle sources that are maps in build-modules
* CLJS-2521: Only expand module graph when modules are actually used
* CLJS-2519: Module loader doesn't load :cljs-base properly
* CLJS-2493: Self host: respect :source-map-timestamp compiler option
* CLJS-2500: Call process-js-modules after compiler restart
* CLJS-2516 Build API fails targeting Node (QuickStart)
* CLJS-2462: subvec on non-integral indexes fails
* CLJS-2474: with-meta on lazy-seq causes separate realization
* CLJS-2501: Fix crash in cljs.util/compiled-by-version and build-options
* CLJS-2476: recur across try should fail compilation
* CLJS-2495: Closure compilation errors should stop Cljs compilation
* CLJS-2496 PHM seq and iter should return MapEntry on nil key case
* CLJS-2473: Infer character literals to have string type
* CLJS-2455: nth fails on eduction
* CLJS-2001: Add map-entry? predicate
* CLJS-2131: Calling empty on a ChunkedSeq should return empty list
* CLJS-1743: Transient maps should support IFn
* CLJS-2452: reverse empty vector returns nil
* CLJS-2450: Allow configuring ignored JS module extensions
* CLJS-2417: Inter-ns s/fdef expansion side effect fails when load cached
source
* CLJS-2447: Ignore css JS modules
* CLJS-2397: Multi-arity function instrumentation fails with :static-fns
true
  CLJS-2197: Calling instrumented var fails to check conformance
* CLJS-2443: doseq should return nil with no collections
* CLJS-2430: Fix foreign-libs with Node target
* CLJS-2414: Self-host: Macro specs are instrumented
* CLJS-2387: CLJS Analyzer does not correctly detect cache hits for
analyzed spec files
* CLJS-2405: Register dumped specs fails
* CLJS-2416: Self-host: defn macro Var doesn't have :macro true meta
* CLJS-2425: Remove unnecessary zero? checks from nat-int?
* CLJS-2377: The CLJS compiled uses deprecated modules on Java 9
* Allow clj->js to preserve namespaces
* CLJS-2391: Unable to :stub a function using stest/instrument
* CLJS-2378: keep the :npm-deps-installed? to avoid to reinstall NPM deps

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to thi

Re: [ClojureScript] Re: Has anyone tried the quickstart guide lately?

2018-03-12 Thread David Nolen
While the forthcoming Quick Start is an improvement we do want the old
Quick Start to work until it's ready :) We don't get many reports about the
original Quick Start not working these days so that needs to be taken into
consideration here.

For the OP, if you're encountering trouble it's important to enumerate the
precise steps that lead to the failure, newcomers sometimes diverge from
the instructions for one reason or another and this nearly always leads to
simple mistakes. If you're looking for some realtime help I recommend Slack
or IRC.

HTH,
David

On Mon, Mar 12, 2018 at 10:13 AM, Dave Liepmann 
wrote:

> Please reconsider introducing yourself with a phrase like "dismal
> failure". Regardless of how you feel about it in the heat of frustration,
> people who worked hard on that document are here. Let's be kind to each
> other.
>
> I have no direct troubleshooting advice, but consider that the entire
> Quickstart is being massively rewritten:
>
> https://www.reddit.com/r/Clojure/comments/81yk2a/
> clojurescript_110x_new_quick_start_feedback/
>
> https://clojureverse.org/t/clojurescript-1-10-x-new-
> quick-start-feedback-please/1679
>
> https://twitter.com/swannodette/status/970140813727584256
>
> Cheers.
> —Dave
>
>
> On Monday, March 12, 2018 at 4:01:19 AM UTC+1, Robbie Huffman wrote:
>>
>> It's a dismal failure.
>>
>> Yes, the first line of build.clj is (require 'cljs.build.api)
>>
>> => java -cp cljs.jar:src clojure.main build.clj
>> Exception in thread "main" java.io.FileNotFoundException: build.clj (No
>> such file or directory)
>>
>> Yes, java is:
>> > java -version
>> java version "1.8.0_161"
>> Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
>> Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
>>
>> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Code-splitting question

2018-02-24 Thread David Nolen
Thomas Heller's comment does explain the problem.

You can define an _empty_ common module whose only purpose is to collect
shared stuff that you don't want falling into base. If you don't specify
:depends-on we don't know where to move entries. So the tradeoff is that
you specify `:depends-on` but as a result we can produce very optimal
splits.

There's no intention to change how this works. You must supply
`:depends-on`.

On Sat, Feb 24, 2018 at 4:58 PM, Khalid Jebbari 
wrote:

> Is it true to say that the dependency on :cljs-base is handled by the
> compiler ? It seems so when I look at the code generated in :none mode.
>
> I'd love to understand why it's not possible between modules.
>
> Le 24 févr. 2018 21:09, "David Nolen"  a écrit :
>
>> You must specify :depends-on - the compiler will not do this for you.
>>
>> David
>>
>> On Fri, Feb 23, 2018 at 1:06 PM, Khalid Jebbari > > wrote:
>>
>>> Hello,
>>>
>>> Say I have 2 namespaces in CLJS/CLJC, A and B. A requires B explicitly.
>>>
>>> I want to produce a js file for each namespace, A.js and B.js. So I use
>>> the code-splitting feature, and create a dedicated module entry for each
>>> namespace, :A and :B.
>>>
>>> What's exactly the difference between specifying that module :A
>>> ":depends-on" :B and not specifying it ? Surely the compiler can understand
>>> the dependence by just analyzing the requires in code.
>>>
>>> --
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "ClojureScript" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojurescript+unsubscr...@googlegroups.com.
>>> To post to this group, send email to clojurescript@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/clojurescript.
>>>
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "ClojureScript" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>> pic/clojurescript/0s2xiicjm8U/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescript@googlegroups.com.
>> Visit this group at https://groups.google.com/group/clojurescript.
>>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Code-splitting question

2018-02-24 Thread David Nolen
You must specify :depends-on - the compiler will not do this for you.

David

On Fri, Feb 23, 2018 at 1:06 PM, Khalid Jebbari 
wrote:

> Hello,
>
> Say I have 2 namespaces in CLJS/CLJC, A and B. A requires B explicitly.
>
> I want to produce a js file for each namespace, A.js and B.js. So I use
> the code-splitting feature, and create a dedicated module entry for each
> namespace, :A and :B.
>
> What's exactly the difference between specifying that module :A
> ":depends-on" :B and not specifying it ? Surely the compiler can understand
> the dependence by just analyzing the requires in code.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Problems with code-splitting

2018-02-02 Thread David Nolen
I don't really understand your example. In your code snippet here it looks
like you're lazy loading the module from the module itself? If that was
unintentional, where is this lazy loading code happening?

Something a bit more minimal and more complete would be helpful.

David

On Mon, Jan 29, 2018 at 12:07 PM, Khalid Jebbari 
wrote:

> Hello,
>
> I'm trying to package all our trackers code (think Google analytics and
> the likes) into different splits so that they don't make base JS package
> too big and don't slow down time to interactive. Good idea, right ?
>
> Our strategy is basically to write the trackers code in Javascript first
> with Google Closure compiler in mind (goog.provide(), goog.require() etc.)
> and add those libs to our CLJS project and also package it as a standalone
> Javascript file for others non-CLJS project. So far it works really well,
> until now that I'm trying to code-split them.
>
> My first experiment fails because the code of the split ends up in the
> base package instead, even though the split file is created. But this split
> file is empty. Here's the configuration:
>
> Linux
> Boot 2.7.1 with boot-cljs 2.1.4
> Clojure 1.9
> ClojureScript  1.9.946
> Java 8 (openjdk version "1.8.0_144")
>
> CLJS compiler options:
>
> ```
> {:main   "yoda.core"
>  :libs   ["trackers/google_analytics.js" ] ;; lot of trackers
> here...
>  :modules{:google-analytics {:entries   
> '#{yoda.tracking.google-analytics}
> ;; cljs namespace that wraps the call to JS tracker, to be able to call
> `(loader/set-loaded! :google-analytics)`
>  :output-to "js/google-analytics.js"}}
>  :asset-path "/yd/js/main.out"
>  :optimizations  :simple
>  :source-map true
>  :parallel-build true
>  :verbosetrue}
> ```
>
> I use the modules like this in the CLJS code:
>
> ```
> ;; CLJS wrapper namespace
> (ns yoda.tracking.google-analytics
>   (:require [cljs.loader :as loader]
> [trackers.google-analytics :as ga]))
>
> (defn start [ga-tracking-id entity]
>   (ga/start ga-tracking-id entity))
>
> (loader/set-loaded! :google-analytics)
>
> ;; Code that lazy-loads it somewhere else
> (loader/load :google-analytics
>  (fn []
>((resolve 'yoda.tracking.google-analytics/start)
> ga-tracking-id entity)))
> ```
>
> It seems to work when I look at the browser console:
> log:Module loaded: cljs_base
> log:Module loaded: google_analytics
>
> But when I examine the cljs_base.js and google_analytics.js files, the
> problem appears: cljs_base.js contains the code of my CLJS wrapper
> namespace, and google_analytics.js is empty (apart from the comment for
> source-map).
>
> With the `:verbose true` option it looks like the CLJS compiler does the
> work properly:
> Building module :google-analytics
> # ... several entries ...
> adding entry [trackers.google-analytics] # the JS code
> adding entry (yoda.tracking.google-analytics) # our CLJS wrapper namespace
> module :google-analytics depends on :cljs-base
>
> Furthermore I expected the google_analytics.js to be loaded with a network
> request, but there's only the request to load cljs_base.js.
>
> Is it because of cross module code motion ? It seems that the code of the
> CLJS tracker is moved to the main module, but I don't understand why.
>
> Thanks in advance for your help.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.946

2017-10-03 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.946"]

This release contains many bug fixes and addresses feedback from the 1.9.908
release. Important changes include parity with Clojure 1.9.0-beta1 and an
updated Google Closure Compiler dependency. The later one in particular now
means that ClojureScript has a dependency on JDK 8.

As always feedback welcome!

1.9.946

### Changes
* CLJS-2300: Delegate clojure.string/capitalize to goog.string/capitalize
* CLJS-2374: Print js/Infinity, js/-Infinity, js/NaN using new reader
literals
* bump tools.reader (1.1.0)
* CLJS-2372: update hash to use the new infinity literals
* CLJS-2364: Bump Closure Compiler to the Sep 2017 version
* CLJS-2340: Have js-keys delegate directly to good.object/getKeys
* CLJS-2338: Support renamePrefix{Namespace} closure compiler option

### Fixes
* CLJS-1576: fix source-map string encoding by applying encodeURIComponent
and fixing string/replace call
* CLJS-2294: Always use opts with implicit opts added
* CLJS-2166: Add uri? predicate
* CLJS-2368: Self-host: Never compile macro namespaces with
`:optimize-constants true
* CLJS-2367: Self-host: :def-emits-var leaks into loaded namespace
processing
* CLJS-2352: Emit valid JS for NaN etc. even when used w/ CLJ >=
1.9.0-alpha20
* CLJS-2339: Significant code reload slowdown with :npm-deps
* CLJS-2361: Self-host: circular dependency detection doesn't handle REPL
self-require
* CLJS-2356: Self-host: circular dependency detection is not correct
* CLJS-2354: Self-host: `compile-str` doesn't handle `clojure` -> `cljs`
aliasing
* CLJS-2353: use portable `node-module-dep?` function in analyze-deps
* CLJS-2345: escape paths emitted as args to cljs.core.load_file
* CLJS-2349: Port reset-vals! and swap-vals! over from Clojure
* CLJS-2336: Call alength once in areduce and amap
* CLJS-2335: Avoid alength on strings
* CLJS-2334: Also gather dependencies from foreign-libs that are modules
* CLJS-2333: module-deps.js doesn't correctly compute `main` if aliased in
browser field
* CLJS-2332: module_deps.js doesn't process `export from` correctly
* CLJS-2330: Don't set `"browser"` field for Closure if target is :nodejs
* CLJS-2326: Indexing node_modules can't find `main` when it doesn't have
an extension
* CLJS-2328: Args are not provided to *main-cli-fn* with optimizations
advanced
* CLJS-2327: module_deps.js doesn't know about browser field advanced usage

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] [bug report] :rename-macros is inaccessible do to overly restrictive spec

2017-09-29 Thread David Nolen
Yes please raise an issue in JIRA thanks.

David

On Fri, Sep 29, 2017 at 5:26 AM, Timothy Pratley 
wrote:

> The ClojureScript compiler has code to handle :rename-macros, but it is
> inaccessible due to an overly restrictive spec:
>
> (ns cljs.user
>   (:require [n.m :refer-macros [a] :rename-macros {a b}]))
>
> Could not Analyze src/cljs/user.cljs
> Only :as, :refer and :rename options supported in :require /
> :require-macros; offending spec: (power-turtle.m :rename-macros {all all2})
> at line 1 src/cljs/user.cljs
>
> I believe that this form is valid and the intention is to support it.
> If so please let me know and I can raise an issue in Jira.
>
>
> The alternative form works fine:
>
> (ns cljs.user
>   (:require-macros [n.m :refer [a] :rename {a b}]))
>
>
> Regards,
> Timothy
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] :arglists inconsistency in cljs

2017-09-17 Thread David Nolen
Thanks for the report! File an issue in JIRA,
https://dev.clojure.org/jira/browse/CLJS

David

On Sun, Sep 17, 2017 at 3:51 AM, David Goldfarb  wrote:

> ClojureScript does not seem to fully support setting :arglists meta-data
> to a function. In particular, it seems to fail when the real parameter list
> contains an '&'.
>
> In Clojure,
> (:arglists (meta (defn f {:arglists '([x])} [& a] a)))
> returns ([x]). But, in ClojureScript, it returns ([& a])
>
> Note that simpler forms do work correctly:
> (:arglists (meta (defn f {:arglists '([x])} [a] a)))
> returns ([x]) in both environments.
>
> (Tested in in ClojureScript 1.9.908 and Clojure 1.9.0-alpha17)
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] clojurescript compiler loads twice macro in .cljc for require-macros?

2017-09-15 Thread David Nolen
You cannot define macros in .cljs files or .cljc files you intend to load
as ClojureScript. So it's not clear to me what you are trying to
demonstrate.

HTH,
David

On Thu, Sep 14, 2017 at 4:37 AM, 박상규  wrote:

> I have wondered how clojurescript compiler processes macros.
> So I tested as following:
>
> I made dirs and files as below.
>
> guruma@mac cljs $ tree .
> .
> ├── build.clj
> ├── cljs.jar
> └── src
> └── foo
> ├── core.cljs
> └── macro.cljc
>
> 2 directories, 4 files
>
> I downloaded cljs.jar using curl.
>
> guruma@mac cljs $ curl -LOk https://github.com/clojure/
> clojurescript/releases/download/r1.9.908/cljs.jar
>
> And I made build.clj, core.cljs and macro.cljc as below.
>
> build.clj
> (require 'cljs.build.api)
>
> (cljs.build.api/build
>   "./src"
>   {:main 'core
>:output-to "out/main.js"})
>
> core.cljs
> (ns foo.core
>   (:require-macros [macro :refer [log]]))
>
> (enable-console-print!)
>
> (log "hello, world")
>
> core.cljs require macro.cljc and use a macro 'log'.
>
> macro.cljc
> (ns foo.macro)
>
> (defn now []
>   #?(:clj (System/currentTimeMillis)
>  :cljs (js/Date.now)))
>
> (defmacro log [x]
>   `(println "log[" (now) "]: " ~x))
>
> macro.cljc defines a macro 'log'.
> And there is the helper function 'now' that has read-conditionals in its
> body.
>
> And compile.
>
> guruma@mac cljs $ java -cp cljs.jar:src clojure.main build.clj
> guruma@mac cljs $
>
> No error and no warning.
>
> And I modified macro.cljc as below
>
> macro.cljc  modified
> (ns foo.macro)
>
> #?(:clj (defn now []  ; <== modified
> (System/currentTimeMillis)))
>
> (defmacro log [x]
>   `(println "log[" (now) "]: " ~x))
>
> the function 'now' is in read-conditional.
>
> And compile.
>
> guruma@mac cljs $ java -cp cljs.jar:src clojure.main build.clj
> WARNING: Use of undeclared Var foo.macro/now at line 6 ./src/foo/core.cljs
>
> Here is a warning and it is out of question because there is no definition
> of the function 'now' for clojurescript to be used for runtime.
>
> But what i can't understand is why there is no warning when compiling
> unmodified macro.cljc.
>
> My questions are:
>
> 1) Does clojurescript compiler load macro twice for :clj and :cljs in
> read-conditional when handling :require-macros?
> 2) How does clojurescript compiler resolve the symbol 'now' defined in
> macro.cljc?
>
> Thanks a lot in advance.
>
>
>
>
>
>
>
>
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.908

2017-08-16 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.908"]

This release includes a number of bug fixes and changes based on feedback
from the 1.9.854 release. For high level details please refer to the
announcement on the official site
https://clojurescript.org/news/2017-08-16-release

As always feedback welcome!

## 1.9.908

### Enhancements
* CLJS-2323: data readers support for records

### Changes
* CLJS-2322: Require only `@cljs-oss/module-deps` to be installed to figure
out Node.js dep graph
* CLJS-2321: Do not automatically call `set-loaded!` on the user's behalf
* CLJS-2316: Upgrade Closure Compiler to August release
* CLJS-2317: Upgrade Google Closure Library
* CLJS-2234: Make build scripts optionally less verbose
* CLJS-2314: Eliminate str call on literal strings in str macro
* CLJS-2291: Set up Windows CI
* CLJS-2286: Simplify JS module processing

### Fixes
* CLJS-2324: module-graph doesn't munge :requires when indexing inputs
* CLJS-2309: :module foreign-libs order not preserved
* CLJS-2318: module-deps.js doesn't respect the package.json `module` field
* CLJS-2312: Miss-compile: Uncaught SyntaxError: Unexpected token default
* CLJS-2315: module_deps.js can't resolve JSON modules
* CLJS-2313: :language-out is a build affecting option
* CLJS-2306: Provide better warning message when namespace can't be found
* CLJS-2303: Disable duplicate alias checking for self-host
* CLJS-2307: Closure warns on unreachable checked array code
* CLJS-2305 Tests: Unable to resolve symbol: opts in this context
* CLJS-2299: Failure with alias and bad require of clojure.spec
* CLJS-2302: Disable process-shim by default in Node.js targets
* CLJS-2266: Self-host: Cannot require clojure.x where clojure.x has no
macros namespace
* CLJS-2304: Fix compiler infrastructure tests on Windows
* CLJS-2261: Issue using interop record constructors in macros namespaces
* CLJS-2296: Foreign libs that expose modules are not being processed under
target nod
* CLJS-2293: Self-host: Can't load cljs.js owing to set alias
* CLJS-2295: `index-node-modules-dir` can't determine :main for
package.json files that have `.` in the string
* CLJS-1620: In JavaScript ES2015 modules default export name is munged to
default$
* CLJS-2287: Self-host: `require` prints result of loading node deps /
global exports
* CLJS-2290: Node packages using require('assert') fail compilation
* CLJS-2281: module_deps.js cannot compute inputs for ES6 sources
* CLJS-2284: Fix build API tests not to pollute `out` in the current
directory
* CLJS-2282: Some valid keywords are strings in JS object literals
* CLJS-2283: Regression with js-obj and gobject alias?

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.854

2017-07-30 Thread David Nolen
On Sun, Jul 30, 2017 at 4:01 PM, Leon Grapenthin 
wrote:

> Yes, it does make CLJSJS obsolete and the new method is to include Node
> modules from NPM.
>
>
This is not true and we should avoid disseminating such claims.


> CLJSJS was never the one true way, especially for production. It lacked
> deduplication of transitive dependencies that were not packed per CLJSJS
> and of course support for dependencies that where are not included in
> CLJSJS.
> It was nice to get started quickly, but in production one compiled its own
> bundle of js deps e. g. via webpack, and handwritten (or handcopypasted)
> externs.
>
> As a newcomer, you won't have to deal with all that in the future, which
> is one of the many benefits of this release.
>
> Nonetheless this new functionality will probably take an iteration or two
> until its stable.
>

Total elimination of externs is just a non-goal. In some cases you will
either need to engage with a JavaScript library maintainer to avoid
needlessly dynamic code or supply externs. For example React still needs
like 6 externs to work from node_modules under advanced compilation. This
could be avoided with a diplomatic PR.

Part of the rationale for this change is encourage ClojureScript developers
to engage more directly with the wider JavaScript ecosystem and push
library maintainers to make their libraries Closure compatible as the
changes are often trivial, especially for modern JS libraries written in
ES6.

David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.9.854

2017-07-30 Thread David Nolen
The ability to consume node_modules is just an additional feature - it
makes no existing features obsolete.

David

On Sun, Jul 30, 2017 at 3:42 PM, Daniel  wrote:

> For someone who is new to clojurescript and pretty confused by
> clojurescript dependency management in general, does this release obsolete
> cljsjs for new projects and what is the new method?
>
>
> On Friday, July 28, 2017 at 4:55:04 PM UTC-5, David Nolen wrote:
>>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Leiningen dependency information:
>>
>> [org.clojure/clojurescript "1.9.854"]
>>
>> This is a significant feature release. Notable new features include
>> comprehensive NPM dependency support, overhauled code splitting,
>> enhanced JavaScript module preprocessing, declared global exports for
>> foreign libs, and checked array operations. There are also a large
>> number of fixes, changes, and minor enhancementes. For more detailed
>> descriptions of the major enhancements, please refer to the last month
>> of posts https://clojurescript.org/news/news.
>>
>> As always, feedback welcome!
>>
>> ## 1.9.854
>>
>> ### Enhancements
>> * CLJS-2280: Provide process.env :preload and auto-configure
>> * CLJS-2279: Infer `:module-type ` for provided `node_modules`
>> * CLJS-2250: Support :foreign-libs overrides via :provides
>> * CLJS-2243: Self-host: Add support for :global-exports
>> * CLJS-2232: Self-host: Add support for string-based requires
>> * add *print-fn-bodies* knob, set to false
>> * CLJS-2198: Safe array operations
>> * CLJS-2217: Support `:rename` for JS modules
>> * CLJS-2214: Support :global-exports for foreign libraries
>> * CLJS-1428: Add a cljs.core/*command-line-args* var
>> * CLJS-2061: Support ns :require for JS libs, allow strings along with
>> symbol
>> * CLJS-2148: Add warnings for invalid use of aget and aset
>> * CLJS-2143: Add support for symbol preprocess values
>>
>> ### Changes
>> * CLJS-2273: Bump tools.reader to 1.0.3 and development dependencies
>> * CLJS-2235: Allow passing extra maven opts to build scripts
>> * CLJS-2267: Allow ^:const inlined vars to affect if emission
>> * CLJS-2245: Add support for using a local `node_modules` installation
>> through a new `:node-modules` compiler flag
>> * CLJS-2002: Don't throw when no *print-fn* is set
>> * support Clojure primitive array type hints, core.async no longer
>>   gives warnings
>> * CLJS-2213: Node.js target should use node_modules index to emit
>> platform specific require
>> * CLJS-2200: bump to tools.reader 1.0.2
>> * CLJS-2135: require macro prints last result of loaded-libs
>> * CLJS-2192: Add ChakraCore testing facilities
>> * CLJS-1800: Defer to tools.reader for cljs.reader functionality
>> * CLJS-2163: Clean up uses of aget / aset on objects
>> * CLJS-2184: Add `ns-publics` and `ns-imports`
>> * CLJS-2183: Assert arguments are quoted symbols in some core macros
>> * CLJS-2182: Assert argument to resolve is a quoted symbol
>> * CLJS-2186: Update docstrings for aget/aset to be consistent with Clojure
>> * CLJS-2180: Allow compiling `:modules` with whitespace optimizations
>> * CLJS-1822: Use `:file-min` when processing JS modules with advanced
>> optimizations
>> * CLJS-2169: Error when compiling with :source-map and advanced
>> optimizations
>> * CLJS-2037: Throw if overwriting alias in current namespace
>> * CLJS-2160: Add loaded? and prefetch functions to cljs.loader
>> * CLJS-2148: Add unsafe-get and use goog.object
>> * CLJS-2161: Bump Closure Compiler to June 2017 release
>>
>> ### Fixes
>> * CLJS-1854: Self-host: Reload ns with const
>> * CLJS-2278: JavaScript object literals are printed wth keys that cannot
>> be read
>> * CLJS-2276: Self-host: Need test.check dep for CLJS-2275
>> * CLJS-2275: cljs.spec.alpha/fdef resolves eagerly
>> * CLJS-2259: Extra .cljs_node_repl directory containing cljs.core output
>> * CLJS-2274: Update CI script to install deps
>> * CLJS-2269: Warn on top level code split loads
>> * CLJS-2272: Tests that depended on default install deps behavior failing
>> * CLJS-2255: Clean up :npm-deps
>> * CLJS-2263: Docstring for neg-int? backwards
>> * CLJS-2262: Correct comment that *warn-on-infer* is file-scope
>> * CLJS-2258: Stack overflow regression for sequence xform applied to
>> eduction
>> * CLJS-2256: Generated code doesn't add newline after sourceMappingURL
>> comment
>> *

Re: [ClojureScript] Re: ANN: ClojureScript 1.9.854

2017-07-30 Thread David Nolen
No idea, make something minimal without any tooling besides ClojureScript
and report the issue in JIRA.

Thanks,
David

On Sun, Jul 30, 2017 at 2:47 PM, Leon Grapenthin 
wrote:

> Amazing release, trying it out right now.
>
> Just wanted to see if including this works: https://github.com/
> coopermaruyama/react-web3
>
> I try to :require it via [react-web3 :as w3]
>
> Unfortunately this gives me a not-found error. Also I noticed that CLJS
> indeed downloaded react-web3 to "node_modules", but the folder is missing
> from the node_modules folder in the compilers output.
>
> Am I requiring it wrong, or is it not supported for some reason?
>
> Kind regards,
>  Leon.
>
> On Friday, July 28, 2017 at 11:54:42 PM UTC+2, David Nolen wrote:
>>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Leiningen dependency information:
>>
>> [org.clojure/clojurescript "1.9.854"]
>>
>> This is a significant feature release. Notable new features include
>> comprehensive NPM dependency support, overhauled code splitting,
>> enhanced JavaScript module preprocessing, declared global exports for
>> foreign libs, and checked array operations. There are also a large
>> number of fixes, changes, and minor enhancementes. For more detailed
>> descriptions of the major enhancements, please refer to the last month
>> of posts https://clojurescript.org/news/news.
>>
>> As always, feedback welcome!
>>
>> ## 1.9.854
>>
>> ### Enhancements
>> * CLJS-2280: Provide process.env :preload and auto-configure
>> * CLJS-2279: Infer `:module-type ` for provided `node_modules`
>> * CLJS-2250: Support :foreign-libs overrides via :provides
>> * CLJS-2243: Self-host: Add support for :global-exports
>> * CLJS-2232: Self-host: Add support for string-based requires
>> * add *print-fn-bodies* knob, set to false
>> * CLJS-2198: Safe array operations
>> * CLJS-2217: Support `:rename` for JS modules
>> * CLJS-2214: Support :global-exports for foreign libraries
>> * CLJS-1428: Add a cljs.core/*command-line-args* var
>> * CLJS-2061: Support ns :require for JS libs, allow strings along with
>> symbol
>> * CLJS-2148: Add warnings for invalid use of aget and aset
>> * CLJS-2143: Add support for symbol preprocess values
>>
>> ### Changes
>> * CLJS-2273: Bump tools.reader to 1.0.3 and development dependencies
>> * CLJS-2235: Allow passing extra maven opts to build scripts
>> * CLJS-2267: Allow ^:const inlined vars to affect if emission
>> * CLJS-2245: Add support for using a local `node_modules` installation
>> through a new `:node-modules` compiler flag
>> * CLJS-2002: Don't throw when no *print-fn* is set
>> * support Clojure primitive array type hints, core.async no longer
>>   gives warnings
>> * CLJS-2213: Node.js target should use node_modules index to emit
>> platform specific require
>> * CLJS-2200: bump to tools.reader 1.0.2
>> * CLJS-2135: require macro prints last result of loaded-libs
>> * CLJS-2192: Add ChakraCore testing facilities
>> * CLJS-1800: Defer to tools.reader for cljs.reader functionality
>> * CLJS-2163: Clean up uses of aget / aset on objects
>> * CLJS-2184: Add `ns-publics` and `ns-imports`
>> * CLJS-2183: Assert arguments are quoted symbols in some core macros
>> * CLJS-2182: Assert argument to resolve is a quoted symbol
>> * CLJS-2186: Update docstrings for aget/aset to be consistent with Clojure
>> * CLJS-2180: Allow compiling `:modules` with whitespace optimizations
>> * CLJS-1822: Use `:file-min` when processing JS modules with advanced
>> optimizations
>> * CLJS-2169: Error when compiling with :source-map and advanced
>> optimizations
>> * CLJS-2037: Throw if overwriting alias in current namespace
>> * CLJS-2160: Add loaded? and prefetch functions to cljs.loader
>> * CLJS-2148: Add unsafe-get and use goog.object
>> * CLJS-2161: Bump Closure Compiler to June 2017 release
>>
>> ### Fixes
>> * CLJS-1854: Self-host: Reload ns with const
>> * CLJS-2278: JavaScript object literals are printed wth keys that cannot
>> be read
>> * CLJS-2276: Self-host: Need test.check dep for CLJS-2275
>> * CLJS-2275: cljs.spec.alpha/fdef resolves eagerly
>> * CLJS-2259: Extra .cljs_node_repl directory containing cljs.core output
>> * CLJS-2274: Update CI script to install deps
>> * CLJS-2269: Warn on top level code split loads
>> * CLJS-2272: Tests that depended on default install deps behavior failing
>> * CLJS-2255: Clean u

Re: [ClojureScript] ANN: ClojureScript 1.9.854

2017-07-30 Thread David Nolen
The shim is intentionally present regardless of target. You can disable
this behavior with `:process-shim false`.

If there's a more robust way for doo to determine the environment that's
probably a good idea too.

David

On Sun, Jul 30, 2017 at 1:06 PM, Charles Loomis  wrote:

> I’ve encountered a problem when running unit tests with doo (phantomjs)
> and the 1.9.854 release.
>
> With the new release, the problem is that doo always fails _after_ running
> the defined tests with:
>
> WARNING: doo's init function was not set
> #object[TypeError TypeError: undefined is not an object
>   (evaluating 'process_exit.call')]
> TypeError: undefined is not an object (evaluating 'process_exit.call’)
>
> This is caused by doo not finding the correct exit function.
>
> To distinguish between browser/nodejs targets, doo checks for the
> existence of js/process. If it exists, it assumes that nodejs is being used
> and tries to extract the exit function from from the js/process object.
> Otherwise it uses the *exit-fn* dynamic variable. This logic works as
> expected in 1.9.671.
>
> In 1.9.854, a shim for the nodejs process library was added
> (src/main/cljs/process/env.cljs). This creates a js/process object which
> looks like:
>
> {
>   "env": {
> "NODE_ENV": "development"
>   }
> }
>
> even when nodejs is not being targeted.  This causes the doo logic for
> looking up the exit function to fail.
>
> It looks like either:
>
>  1) doo needs to be updated to use a more precise test when targeting
> nodejs or
>  2) clojurescript should define the js/process shim only when nodejs is
> targeted
>
> I’d like some feedback on this to understand where to follow up with this
> issue.
>
>
> Cal
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.854

2017-07-28 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.854"]

This is a significant feature release. Notable new features include
comprehensive NPM dependency support, overhauled code splitting,
enhanced JavaScript module preprocessing, declared global exports for
foreign libs, and checked array operations. There are also a large
number of fixes, changes, and minor enhancementes. For more detailed
descriptions of the major enhancements, please refer to the last month
of posts https://clojurescript.org/news/news.

As always, feedback welcome!

## 1.9.854

### Enhancements
* CLJS-2280: Provide process.env :preload and auto-configure
* CLJS-2279: Infer `:module-type ` for provided `node_modules`
* CLJS-2250: Support :foreign-libs overrides via :provides
* CLJS-2243: Self-host: Add support for :global-exports
* CLJS-2232: Self-host: Add support for string-based requires
* add *print-fn-bodies* knob, set to false
* CLJS-2198: Safe array operations
* CLJS-2217: Support `:rename` for JS modules
* CLJS-2214: Support :global-exports for foreign libraries
* CLJS-1428: Add a cljs.core/*command-line-args* var
* CLJS-2061: Support ns :require for JS libs, allow strings along with
symbol
* CLJS-2148: Add warnings for invalid use of aget and aset
* CLJS-2143: Add support for symbol preprocess values

### Changes
* CLJS-2273: Bump tools.reader to 1.0.3 and development dependencies
* CLJS-2235: Allow passing extra maven opts to build scripts
* CLJS-2267: Allow ^:const inlined vars to affect if emission
* CLJS-2245: Add support for using a local `node_modules` installation
through a new `:node-modules` compiler flag
* CLJS-2002: Don't throw when no *print-fn* is set
* support Clojure primitive array type hints, core.async no longer
  gives warnings
* CLJS-2213: Node.js target should use node_modules index to emit platform
specific require
* CLJS-2200: bump to tools.reader 1.0.2
* CLJS-2135: require macro prints last result of loaded-libs
* CLJS-2192: Add ChakraCore testing facilities
* CLJS-1800: Defer to tools.reader for cljs.reader functionality
* CLJS-2163: Clean up uses of aget / aset on objects
* CLJS-2184: Add `ns-publics` and `ns-imports`
* CLJS-2183: Assert arguments are quoted symbols in some core macros
* CLJS-2182: Assert argument to resolve is a quoted symbol
* CLJS-2186: Update docstrings for aget/aset to be consistent with Clojure
* CLJS-2180: Allow compiling `:modules` with whitespace optimizations
* CLJS-1822: Use `:file-min` when processing JS modules with advanced
optimizations
* CLJS-2169: Error when compiling with :source-map and advanced
optimizations
* CLJS-2037: Throw if overwriting alias in current namespace
* CLJS-2160: Add loaded? and prefetch functions to cljs.loader
* CLJS-2148: Add unsafe-get and use goog.object
* CLJS-2161: Bump Closure Compiler to June 2017 release

### Fixes
* CLJS-1854: Self-host: Reload ns with const
* CLJS-2278: JavaScript object literals are printed wth keys that cannot be
read
* CLJS-2276: Self-host: Need test.check dep for CLJS-2275
* CLJS-2275: cljs.spec.alpha/fdef resolves eagerly
* CLJS-2259: Extra .cljs_node_repl directory containing cljs.core output
* CLJS-2274: Update CI script to install deps
* CLJS-2269: Warn on top level code split loads
* CLJS-2272: Tests that depended on default install deps behavior failing
* CLJS-2255: Clean up :npm-deps
* CLJS-2263: Docstring for neg-int? backwards
* CLJS-2262: Correct comment that *warn-on-infer* is file-scope
* CLJS-2258: Stack overflow regression for sequence xform applied to
eduction
* CLJS-2256: Generated code doesn't add newline after sourceMappingURL
comment
* CLJS-2254: Module Indexing: Provide relative paths for a package's main
module
* CLJS-2248: Build API tests rely on Yarn
* CLJS-2239: Self-host: Add `:target :nodejs` to the docstrings in cljs.js
* CLJS-2251: Follow-up fix to CLJS-2249 and related commit
* CLJS-2249: Provide a test for d4b871cce73
* CLJS-2246: Revert CLJS-2245 and CLJS-2240 and fix `lein test`
* CLJS-2244: Orphaned processed JS modules breaks :modules
* CLJS-2242: Lots of undeclared Var warns in cljs.spec.gen.alpha
* CLJS-2241: Multiple requires of Node.js modules in non :nodejs target are
not idempotent at the REPL
* CLJS-2229: Ensure that new modules work works correctly with REPLs
* CLJS-2238: Perf regression with node module indexing
* CLJS-2240: don't shell out to module_deps.js if `:npm-deps` not specified
* CLJS-2230: Double checked arrays
* CLJS-2227: Squelch some of the array access tests
* CLJS-2228: Port CLJS-2226 to module_deps.js
* CLJS-1955: data_readers.cljc can't reference handlers in user code
* CLJS-2225: Need to add :checked-arrays to known compiler opts
* CLJS-2226: :npm-deps can't index scoped packages
* CLJS-2224: Resolve-var is wrong wrt. module resolution
* CLJS-2223: Self-host: Undeclared Var deps/native-node-modules
* CL

[ClojureScript] Re: New Features coming to ClojureScript

2017-07-14 Thread David Nolen
3rd post in the series is now up thanks to Mike Fixes
https://clojurescript.org/news/2017-07-14-checked-array-access

On Mon, Jul 10, 2017 at 5:28 PM, David Nolen  wrote:

> We have a series of blog posts in the queue that outline several major
> enhancements to the ClojureScript compiler that will be available in the
> next release. This is the first one in the series:
>
> https://clojurescript.org/news/2017-07-10-code-splitting
>
> Enjoy!
> David
>
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: New Features coming to ClojureScript

2017-07-12 Thread David Nolen
Second post in the series is up
https://clojurescript.org/news/2017-07-12-clojurescript-is-not-an-island-integrating-node-modules
kindly contributed by António Nuno Monteiro.

Enjoy!
David

On Mon, Jul 10, 2017 at 5:28 PM, David Nolen  wrote:

> We have a series of blog posts in the queue that outline several major
> enhancements to the ClojureScript compiler that will be available in the
> next release. This is the first one in the series:
>
> https://clojurescript.org/news/2017-07-10-code-splitting
>
> Enjoy!
> David
>
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] New Features coming to ClojureScript

2017-07-10 Thread David Nolen
We have a series of blog posts in the queue that outline several major
enhancements to the ClojureScript compiler that will be available in the
next release. This is the first one in the series:

https://clojurescript.org/news/2017-07-10-code-splitting

Enjoy!
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Issue with building fileUrl on windows in repl.cljc?

2017-07-02 Thread David Nolen
Looks like a problem to me. Please file an issue in JIRA, thanks!

David

On Sun, Jul 2, 2017 at 3:12 PM, Vojimir Golem 
wrote:

>
> I think that the following line might cause the problem on windows:
> https://github.com/clojure/clojurescript/blob/master/src/
> main/clojure/cljs/repl.cljc#L713
>
> For file param e.g. "src\duct3\client.cljs"
>
> (str "file://" (.getAbsolutePath file))
>
> evaluates on windows as:
> "file://C:\Projects\Playground\duct3\src\duct3\client.cljs"
>
> which is not legal file Url (https://en.wikipedia.org/
> wiki/File_URI_scheme#Windows)
>
> and final result is: java.net.UnknownHostException (java treat that URL
> as FTP address).
>
> Is this a known issue?
>
> Thx!
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.671, bugfix release

2017-06-30 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.671"]

This is a follow up bugfix release to 1.9.660.

As always, feedback welcome!

## 1.9.671

### Fixes
* CLJS-2139: Undeclared var regression in fn bodies
* CLJS-2137: Missing INext on some sequences
* CLJS-2136: Clarify IFind contract to avoid double-lookups
* need to elide :c.a/analyzed in c.a/analyze-wrap-meta to avoid dumping
unintended
  with-meta expressions
* resolve returns improperly constructed Var
* fix :fn-invoke-direct edgecase around keywords

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.660, compiler performance, runtime performance, cljs.spec fixes

2017-06-27 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.660"]

This release includes many performance enhancements to the
ClojureScript compiler as well as ClojureScript runtime code. In
addition, the release contains fixes to cljs.spec so that it works
correctly under incremental compilation.

For more information please refer to the new post here kindly
contributed by Mike Fikes:
https://clojurescript.org/news/2017-06-27-faster-compilation-runtime-and-spec-caching-fixes

Thanks to all that contributed, and as always, feedback welcome!

## 1.9.660

### Enhancements
* CLJS-2108: faster set equivalence
* CLJS-2099: Optimize apply by avoiding .apply
* CLJS-2046: Optimize expression in call position
* CLJS-1876: Faster reduce for PV, Subvec and ChunkedSeq
* CLJS-2080: Faster equiv-map
* CLJS-2066: Avoid analyzing named fn literal bodies twice
* CLJS-2065: Improve analyzer munge performance

### Changes
* CLJS-2134: Warn on variadic signatures in protocol method implementation
* CLJS-2130: Self-host: Add `:fn-invoke-direct` to public API docstrings
* CLJS-2112: Iterator based reduce path
* CLJS-2100: to-array calls seq too often
* CLJS-2041: Compiler flag to drop Function.prototype.call invokes
* CLJS-2093: inline ^:const var values
* CLJS-2042: Variadic invoke calls array_seq inefficiently
* CLJS-2003 remove redundant calls to `str` in munge/demunge
* CLJS-1907: Improve error message from cljs.reader/read-string
* CLJS-1724: Include IIterable in fast-path-protocols
* CLJS-924: Better error message for mistaken use of 'def'
* CLJS-1599: UUIDs are not equal for upper/lower case strings
* NodeJS REPL accepts a :path opt to set NODE_PATH
* CLJS-1886: RangedIterator should only be created from
cljs.core.PersistentVector instances
* CLJS-2068: MapEntry, RedNode and BlackNode are IComparable
* CLJS-2073: Don't flush for every emitted line
* CLJS-2089: Warn message wrong for recur to protocol with nil
* CLJS-2085: defrecord recur method head target object
* CLJS-1977: defrecord should use murmur hashing like Clojure
* CLJS-2076: modules should support wildcard namespaces
* CLJS-2078: add resolve macro

### Fixes
* CLJS-2133: Invalid variadic IFn implementations now fail
* CLJS-2128: Fix regression in CLJS-1886
* CLJS-2126: Add new compiler option :fn-invoke-direct to build-affecting
options
* CLJS-2054: Private core names still result in "already declared" warnings
* CLJS-2125: Duplicate HOF invoke warnings if :static-fns true
* CLJS-2119: s/form for s/& is qualified with `clojure.spec.alpha`
* CLJS-2121: Self-host: Document string as valid name arg
* CLJS-2124: Self-host: Tests failing wth Could not find tag parser for
:cljs.spec.alpha
* CLJS-2122: Self-host: Non-symbol ns names dumped into env
* CLJS-2117: Self-host: Port CLJS-1989 to self-hosted
* CLJS-1989: s/fdef expansion side effect fails when load cached source
* CLJS-2116: Need to handle un-namespaced symbol when evaluating `foo.core
* CLJS-2109: incorrect syntax-quote symbol resolution (resolve-symbol
'clojure.core) -> 'clojure/core
* CLJS-2113: nth function produces different results from clojure when
using a negative index on a sequence
* CLJS-2115: Pass not-found in the native-satisfies? branch of nth
* CLJS-2111: Transit analysis caching broken for JSValue or regex
* CLJS-2101: Undeclared var in do chain of defs
* CLJS-2104: Const-replaced exprs do not emit js "return"
* CLJS-1992: declare after def should have no effect
* CLJS-1251: Missing semicolons when emitting deftype and defrecord
mistaken use of 'def'
* CLJS-1685: Incorrectly lazy subvec when start param is nil
* CLJS-1641: Multi-arity defn copies arguments unnecessarily for all cases
* CLJS-2092: Redundant call to equiv-map in PAM.-equiv
* Check for compilation success, and lib folder
* CLJS-2030: Case with grouped keyword test emit result-expr multiple times
* CLJS-2094: Predicates unit tests constructs a uuid with nil
* CLJS-1891: UUID.toString can return non-string
* CLJS-2072: Eliminate reflection in cljs.js-deps/build-index
* CLJS-2012: Find on PHM with nil entry always returns nil entry
* CLJS-2057: fix language-in options (es6 deprecated and add missing es2016)
* CLJS-2060: Backport CLJ-2141 Return only true/false from qualified-*
predicates
* CLJS-2091: reify docstring ISeqable example needs correction
* CLJS-2088: fix caching collision between macros ns and regular ns in
boostrap
* CLJS-2036: Relative path exception thrown when :preloads requires a
:foreign-lib
* CLJS-2083: Test equiv-map for maps which do not impl IKVReduce
* CLJS-2081: Self-host: Regression with CLJS-2079
* CLJS-2079: Records and maps are not equal
* CLJS-2075: PersistentTreeMap.reduce-kv does not honor reduced?
* Browser REPL regression
* CLJS-2069: Self-host: automatic `clojure` -> `cljs` aliasing doesn't work
when loading macro namespaces
* CLJS-2067: reduce-kv / inod

Re: [ClojureScript] Warning: breaking behaviour change of seqable? in CLJS 1.9.456

2017-06-01 Thread David Nolen
Yes we try to note breaking changes in releases but this one obviously
slipped through. Sorry about that.

David

On Wed, May 31, 2017 at 7:03 PM, Daniel Compton <
daniel.compton.li...@gmail.com> wrote:

> I agree, it does make sense to consolidate to Clojure's behaviour. In the
> future it could be good to add an extra release notes section for changes
> like these that break the ClojureScript API contract.
>
> Thanks, Daniel.
>
> On Thu, Jun 1, 2017 at 10:53 AM David Nolen 
> wrote:
>
>> Thanks for the report. That's unfortunate but I think in this case
>> consolidating the behavior with Clojure is best.
>>
>> David
>>
>> On Wed, May 31, 2017 at 4:28 PM, Daniel Compton <
>> daniel.compton.li...@gmail.com> wrote:
>>
>>> Hi folks
>>>
>>> We ran into issues in production yesterday after upgrading to
>>> ClojureScript 1.9.456, and I haven't seen anyone else mention this so I
>>> thought I'd point it out for anyone upgrading.
>>>
>>> In versions prior to CLJS 1.9.456, seqable? tested only for the ISeqable
>>> protocol, i.e. collections. In CLJS-1875
>>> <https://dev.clojure.org/jira/browse/CLJS-1875>, released as part of
>>> 1.9.456
>>> <https://groups.google.com/forum/#!topic/clojurescript/wGJeG36GPTk> it
>>> now tests for anything that you can call seq on. This matches the
>>> behaviour of the seqable? function in Clojure that was recently added
>>> for 1.9, but was a breaking change in behaviour for ClojureScript.
>>>
>>> *In concrete terms, this means that strings and arrays that previously
>>> tested false for seqable? will now test true.*
>>>
>>> *In 1.9.229*
>>> cljs.user=> (seqable? [:a :b :c])
>>> true
>>> cljs.user=> (seqable? {:a :b :c :d})
>>> true
>>> cljs.user=> *(seqable? "abcd")*
>>> *false*
>>> cljs.user=> *(seqable? (into-array [:a :b :c]))*
>>> *false*
>>>
>>> *In 1.9.456 and beyond*
>>> cljs.user=> (seqable? [:a :b :c])
>>> true
>>> cljs.user=> (seqable? {:a :b :c :d})
>>> true
>>> cljs.user=> *(seqable? "abcd")*
>>> *true*
>>> cljs.user=> *(seqable? (into-array [:a :b :c]))*
>>> *true*
>>>
>>> --
>>> Daniel
>>>
>>> --
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "ClojureScript" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojurescript+unsubscr...@googlegroups.com.
>>> To post to this group, send email to clojurescript@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/clojurescript.
>>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescript@googlegroups.com.
>> Visit this group at https://groups.google.com/group/clojurescript.
>>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Warning: breaking behaviour change of seqable? in CLJS 1.9.456

2017-05-31 Thread David Nolen
Thanks for the report. That's unfortunate but I think in this case
consolidating the behavior with Clojure is best.

David

On Wed, May 31, 2017 at 4:28 PM, Daniel Compton <
daniel.compton.li...@gmail.com> wrote:

> Hi folks
>
> We ran into issues in production yesterday after upgrading to
> ClojureScript 1.9.456, and I haven't seen anyone else mention this so I
> thought I'd point it out for anyone upgrading.
>
> In versions prior to CLJS 1.9.456, seqable? tested only for the ISeqable
> protocol, i.e. collections. In CLJS-1875
> , released as part of
> 1.9.456
>  it
> now tests for anything that you can call seq on. This matches the
> behaviour of the seqable? function in Clojure that was recently added for
> 1.9, but was a breaking change in behaviour for ClojureScript.
>
> *In concrete terms, this means that strings and arrays that previously
> tested false for seqable? will now test true.*
>
> *In 1.9.229*
> cljs.user=> (seqable? [:a :b :c])
> true
> cljs.user=> (seqable? {:a :b :c :d})
> true
> cljs.user=> *(seqable? "abcd")*
> *false*
> cljs.user=> *(seqable? (into-array [:a :b :c]))*
> *false*
>
> *In 1.9.456 and beyond*
> cljs.user=> (seqable? [:a :b :c])
> true
> cljs.user=> (seqable? {:a :b :c :d})
> true
> cljs.user=> *(seqable? "abcd")*
> *true*
> cljs.user=> *(seqable? (into-array [:a :b :c]))*
> *true*
>
> --
> Daniel
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.562 - Clojure 1.9.0-alpha17 parity

2017-05-26 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.562"]

This release coincides with Clojure 1.9.0-alpha17, includes a variety
of fixes, and updates both the Closure Compiler & Library dependencies.

As always, feedback welcome!

### Enhancements
* CLJS-2027: Add language-in for ECMA 2017 and ECMA Next
* CLJS-2026: Add Compiler option for rewrite polyfills

### Changes
* CLJS-2021: subvec throws when passed non-vector
* CLJS-1884: Give a chance to MetaFn to be removed by closure under
:advanced
  optimization Replace with-meta calls by -with-meta calls where possible
* CLJS-2052: Port new spec.alpha enhancements
* Update Google Closure Compiler dependency
* Update Google Closure Library dependency

### Fixes
* CLJS-2053: Regression: cljs.spec.alpha/any for fdef
* CLJS-2039: remove extraneous argument from ChunkBuffer.chunk
* Fix assumption that all closure-compliant JS is goog.*
* CLJS-2035: Self-host: Add map-entry-test to self-parity
* CLJS-2033: set-validator! should check current state
* CLJS-2008: Self-host: backport fixes to threading macros
* CLJS-2005: Bad error message with duplicate arity function definitions
* CLJS-2032: Case macro expansion evaluates expression twice when no
matching clause
* CLJS-2023: User supplied type hints stopped working on js/goog.DEBUG
* CLJS-2020: defmulti "miss" performance poor
* CLJS-2034: Sequence and Eduction produce infinite loop in transducer that
appends to the reduction

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.542, spec changes & REPL enhancement

2017-05-15 Thread David Nolen
That runtime error doesn't necessarily seem related to the compile time
warning. Would need more information.

On Mon, May 15, 2017 at 10:16 AM, Tatu Tarvainen 
wrote:

>
> My phantom test run crashes with:
> TypeError: undefined is not an object (evaluating 'schema.core.MapEntry.
> prototype')
>
> I'm assuming that is related to this change, but I'll need to investigate
> more. There's already a merged PR for schema that excludes MapEntry in
> refer-clojure. I'm hoping that will fix this.
>
>
> maanantai 15. toukokuuta 2017 14.32.55 UTC+3 David Nolen kirjoitti:
>>
>> That's just a warning. Is there some deeper breakage that you are
>> observing?
>>
>> David
>>
>> On Sun, May 14, 2017 at 3:09 AM, Tatu Tarvainen 
>> wrote:
>>
>>>
>>> > * CLJS-2013 - Add MapEntry type
>>>
>>> This change seems to break plumatic schema, after upgrading I'm getting
>>> warnings:
>>>
>>> WARNING: ->MapEntry already refers to: cljs.core/->MapEntry being
>>> replaced by: schema.core/->MapEntry at ... schema/core.cljs
>>>
>>> Plumatic also defines a MapEntry record type which clashes with the core
>>> one.
>>>
>>> --
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "ClojureScript" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojurescrip...@googlegroups.com.
>>> To post to this group, send email to clojur...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/clojurescript.
>>>
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to cloj...@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.542, spec changes & REPL enhancement

2017-05-15 Thread David Nolen
That's just a warning. Is there some deeper breakage that you are observing?

David

On Sun, May 14, 2017 at 3:09 AM, Tatu Tarvainen  wrote:

>
> > * CLJS-2013 - Add MapEntry type
>
> This change seems to break plumatic schema, after upgrading I'm getting
> warnings:
>
> WARNING: ->MapEntry already refers to: cljs.core/->MapEntry being replaced
> by: schema.core/->MapEntry at ... schema/core.cljs
>
> Plumatic also defines a MapEntry record type which clashes with the core
> one.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.542, spec changes & REPL enhancement

2017-05-12 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.542"]

This release is primarily about staying in sync with the latest changes to
spec. It
also includes a small but significant enhancement to REPLs to allow
handling multiple forms.

As always, feedback welcome!

## 1.9.542

### Enhancements
* CLJS-1572: REPL doesn't give error for expressions with too many right
parentheses

### Changes
* cljs.spec -> cljs.spec.alpha
* CLJS-2013 - Add MapEntry type
* CLJS-2015: Self-host: `defmacro` should return the Var
* CLJS-2017: Upgrade Closure Compiler to latest April 2017 release

### Fixes
* CLJS-485: RegExp flags are being dropped by string/replace
* CLJS-1518: Case macro expansion evaluates expression twice
* CLJS-2024: Self-host: `find-ns-obj` broken for namespaces with 'a' as the
first segment
* CLJS-2028: `realized?` throws on LazyTransformer
* CLJS-2010: refer-clojure :rename throws on valid invocations
* CLJS-2007: Whitespace optimizations should respect :main option.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.9.518, `async` issue resolved

2017-04-14 Thread David Nolen
I just cut 1.9.521. The only change was to fix a regression to
:foreign-libs when there are multiple entries which use the same :file.

David

On Wed, Apr 12, 2017 at 4:52 PM, David Nolen  wrote:

> ClojureScript, the Clojure compiler that emits JavaScript source code.
>
> README and source code: https://github.com/clojure/clojurescript
>
> Leiningen dependency information:
>
> [org.clojure/clojurescript "1.9.518"]
>
> This release bumps Closure Compiler, finally resolving the issue with
> core.async.
>
> As always feedback welcome!
>
> ## 1.9.518
>
> ### Enhancements
> * CLJS-1973: Add support for `:npm-deps` in upstream `deps.cljs`
> * CLJS-1968: Enable calling JS modules that export a single function
> * CLJS-1960: Require CommonJS modules directly from a ClojureScript
> namespace
>
> ### Changes
> * CLJS-2006: Upgrade Closure Compiler to April 2017 release
>
> ### Fixes
> * CLJS-1497: `find` on an associative collection does not return
> collection key
> * CLJS-1996: Support correct checking of :preloads when :optimizations not
> specified
> * CLJS-1994: assoc on nil returns PHM (expected PAM)
> * CLJS-1988: add :npm-deps to recognized compiler options
> * Fix tiny bug in index-node-modules when no second argument is given
> * CLJS-1985: `index-node-modules` should pass opts to `node-inputs`
> * CLJS-1987: don't index node modules blindly
> * CLJS-1519 Collection invoke errors report arity off by 1
> * CLJS-1964: Validate that `:target :nodejs` and no optimizations requires
> a `:main` option to be present
> * CLJS-1956: Add missing JS reserved keywords
> * CLJS-1983: res -> mres in spec.cljs
> * CLJS-1978: port CLJ-2035
> * CLJS-1979: port CLJ-2043 (fix s/form of s/conformer)
> * CLJS-1980: port CLJ-2100 (s/nilable form should retain original spec
> form)
> * CLJS-1976: hash-map assoc stackoverflow
> * CLJS-1957: Process JS modules errors and warnings don't get printed
> * CLJS-1868 - Output simpler dependency rel paths when compiling with
> Closure libs
> * CLJS-1967: Missing ^boolean for removed-leaf? in THM impl
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.518, `async` issue resolved

2017-04-12 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.518"]

This release bumps Closure Compiler, finally resolving the issue with
core.async.

As always feedback welcome!

## 1.9.518

### Enhancements
* CLJS-1973: Add support for `:npm-deps` in upstream `deps.cljs`
* CLJS-1968: Enable calling JS modules that export a single function
* CLJS-1960: Require CommonJS modules directly from a ClojureScript
namespace

### Changes
* CLJS-2006: Upgrade Closure Compiler to April 2017 release

### Fixes
* CLJS-1497: `find` on an associative collection does not return collection
key
* CLJS-1996: Support correct checking of :preloads when :optimizations not
specified
* CLJS-1994: assoc on nil returns PHM (expected PAM)
* CLJS-1988: add :npm-deps to recognized compiler options
* Fix tiny bug in index-node-modules when no second argument is given
* CLJS-1985: `index-node-modules` should pass opts to `node-inputs`
* CLJS-1987: don't index node modules blindly
* CLJS-1519 Collection invoke errors report arity off by 1
* CLJS-1964: Validate that `:target :nodejs` and no optimizations requires
a `:main` option to be present
* CLJS-1956: Add missing JS reserved keywords
* CLJS-1983: res -> mres in spec.cljs
* CLJS-1978: port CLJ-2035
* CLJS-1979: port CLJ-2043 (fix s/form of s/conformer)
* CLJS-1980: port CLJ-2100 (s/nilable form should retain original spec form)
* CLJS-1976: hash-map assoc stackoverflow
* CLJS-1957: Process JS modules errors and warnings don't get printed
* CLJS-1868 - Output simpler dependency rel paths when compiling with
Closure libs
* CLJS-1967: Missing ^boolean for removed-leaf? in THM impl

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.493, another bugfix release

2017-03-01 Thread David Nolen
This is a known issue with the latest Closure Compiler release. You will
need to specify the previous version of Closure Compiler via your
dependency tool.

David

On Fri, Feb 24, 2017 at 11:46 PM, Rangel Spasov  wrote:

> Hey guys,
>
> I'm getting this error. It seems that it's happening inside the transpiled
> core.async sources. The error carrot at line 1444 points at the semicolon,
> pretty strange.
>
>
> Feb 24, 2017 8:38:19 PM com.google.javascript.jscomp.LoggerErrorManager
> println
> SEVERE: 
> /Users/raspasov/projects/project123/target/ios/cljs/core/async.js:1444:
> ERROR - Parse error. No newline allowed before '=>'
> var inst_33727 = async(inst_33726); (^ points at the semicolon)
>
>
> Feb 24, 2017 8:38:19 PM com.google.javascript.jscomp.LoggerErrorManager
> printSummary
> WARNING: 1 error(s), 4 warning(s)
> ERROR: JSC_PARSE_ERROR. Parse error. No newline allowed before '=>' at
> /Users/raspasov/projects/project123/target/ios/cljs/core/async.js line
> 1444 : 34
>
> I tried both :parallel-build true/false but it doesn't make a difference.
> It works fine on [org.clojure/clojurescript "1.9.473"]
>
>
> Here's how the async.js source looks like around line 1444.
>
> return cljs.core.cst$kw$recur;
> } else {
> if((state_val_33738 === (2))){
> var state_33737__$1 = state_33737;
> return cljs.core.async.impl.ioc_helpers.take_BANG_(state_
> 33737__$1,(4),jobs);
> } else {
> if((state_val_33738 === (3))){
> var inst_33735 = (state_33737[(2)]);
> var state_33737__$1 = state_33737;
> return cljs.core.async.impl.ioc_helpers.return_chan(state_
> 33737__$1,inst_33735);
> } else {
> if((state_val_33738 === (4))){
> var inst_33726 = (state_33737[(2)]);
> var inst_33727 = async(inst_33726); <<<<<<<<<<<<<<<< This is the error
> line number 1444
> var state_33737__$1 = state_33737;
> if(cljs.core.truth_(inst_33727)){
> var statearr_33743_33989 = state_33737__$1;
> (statearr_33743_33989[(1)] = (5));
>
> } else {
> var statearr_33744_33990 = state_33737__$1;
> (statearr_33744_33990[(1)] = (6));
>
> }
>
> return cljs.core.cst$kw$recur;
> } else {
> if((state_val_33738 === (5))){
> var state_33737__$1 = state_33737;
> var statearr_33745_33992 = state_33737__$1;
> (statearr_33745_33992[(2)] = null);
>
> (statearr_33745_33992[(1)] = (2));
>
>
> return cljs.core.cst$kw$recur;
> } else {
> if((state_val_33738 === (6))){
> var state_33737__$1 = state_33737;
> var statearr_33746_33993 = state_33737__$1;
> (statearr_33746_33993[(2)] = null);
>
> (statearr_33746_33993[(1)] = (7));
>
>
> return cljs.core.cst$kw$recur;
> } else {
> if((state_val_33738 === (7))){
> var inst_33733 = (state_33737[(2)]);
> var state_33737__$1 = state_33737;
> var statearr_33747_33994 = state_33737__$1;
> (statearr_33747_33994[(2)] = inst_33733);
>
> (statearr_33747_33994[(1)] = (3));
>
>
> return cljs.core.cst$kw$recur;
> } else {
> return null;
> }
> }
> }
> }
> }
> }
> }
>
>
> On Friday, February 24, 2017 at 4:21:35 PM UTC-8, David Nolen wrote:
> > Just cut 1.9.494 to back out some macros that were made unintentionally
> private.
> >
> >
> > On Fri, Feb 24, 2017 at 4:47 PM, David Nolen 
> wrote:
> >
> >
> > ClojureScript, the Clojure compiler that emits JavaScript source code.
> >
> >
> > README and source code: https://github.com/clojure/clojurescript
> >
> >
> > Leiningen dependency information:
> >
> >
> > [org.clojure/clojurescript "1.9.493"]
> >
> >
> > This is a bugfix release.
> >
> >
> > As always, feedback welcome!
> >
> >
> > ### Fixes
> > * CLJS-1948: Possible race condition in compiler w/ parallel-build true
> > * CLJS-1941: `cljs.compiler/cljs-files-in` shouldn't return `.cljc`
> files if a `.cljs` file exists for the namespace
> > * CLJS-1940: Undeclared var warning when invoking a protocol method on a
> `js` interop form
> > * CLJS-1951: Missing 0 and 1 arity versions of interleave
> > * CLJS-1952: Bump Closure Compiler to Feb 2017 release
> > * CLJS-1937: Self-host: undeclared cljs.core$macros/mod when compiling
> cljs/core.cljs
> > * CLJS-1936: cljs.analyzer declares vars which are only used in Clojure
> > * CLJS-1949: Self-host: cljs.compiler/munge doesn't preserve JVM
> compiler semantics
> > * CLJS-1950: Eliminate instances of #^
> > * CLJS-1943: Self-host: `cljs.pprint`'s macros can't be compiled
> > * CLJS-1945: cljs.spec/every-impl kind-fn kind-form dead code
>

[ClojureScript] Re: ANN: ClojureScript 1.9.493, another bugfix release

2017-02-24 Thread David Nolen
Just cut 1.9.494 to back out some macros that were made unintentionally
private.

On Fri, Feb 24, 2017 at 4:47 PM, David Nolen  wrote:

> ClojureScript, the Clojure compiler that emits JavaScript source code.
>
> README and source code: https://github.com/clojure/clojurescript
>
> Leiningen dependency information:
>
> [org.clojure/clojurescript "1.9.493"]
>
> This is a bugfix release.
>
> As always, feedback welcome!
>
> ### Fixes
> * CLJS-1948: Possible race condition in compiler w/ parallel-build true
> * CLJS-1941: `cljs.compiler/cljs-files-in` shouldn't return `.cljc` files
> if a `.cljs` file exists for the namespace
> * CLJS-1940: Undeclared var warning when invoking a protocol method on a
> `js` interop form
> * CLJS-1951: Missing 0 and 1 arity versions of interleave
> * CLJS-1952: Bump Closure Compiler to Feb 2017 release
> * CLJS-1937: Self-host: undeclared cljs.core$macros/mod when compiling
> cljs/core.cljs
> * CLJS-1936: cljs.analyzer declares vars which are only used in Clojure
> * CLJS-1949: Self-host: cljs.compiler/munge doesn't preserve JVM compiler
> semantics
> * CLJS-1950: Eliminate instances of #^
> * CLJS-1943: Self-host: `cljs.pprint`'s macros can't be compiled
> * CLJS-1945: cljs.spec/every-impl kind-fn kind-form dead code
> * CLJS-1944: Can't spec generate non-vector collections
> * CLJS-1946: Self-hosted: don't emit `goog.require` calls for foreign libs
> if optimizations different than `:none`
> * CLJS-1636: Mark some symbols in core macros ns as private
> * CLJS-1939: Fix Node load_file call for foreign-deps
> * CLJS-1942: Self-host: `cljs.env.macros` and `cljs.analyzer.macros` can't
> be loaded
> * CLJS-1935: When calling cljs.spec/valid?, subsequent predicates of
> cljs.spec/and are evaluated even when early predicate is unsatisfied
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.493, another bugfix release

2017-02-24 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.493"]

This is a bugfix release.

As always, feedback welcome!

### Fixes
* CLJS-1948: Possible race condition in compiler w/ parallel-build true
* CLJS-1941: `cljs.compiler/cljs-files-in` shouldn't return `.cljc` files
if a `.cljs` file exists for the namespace
* CLJS-1940: Undeclared var warning when invoking a protocol method on a
`js` interop form
* CLJS-1951: Missing 0 and 1 arity versions of interleave
* CLJS-1952: Bump Closure Compiler to Feb 2017 release
* CLJS-1937: Self-host: undeclared cljs.core$macros/mod when compiling
cljs/core.cljs
* CLJS-1936: cljs.analyzer declares vars which are only used in Clojure
* CLJS-1949: Self-host: cljs.compiler/munge doesn't preserve JVM compiler
semantics
* CLJS-1950: Eliminate instances of #^
* CLJS-1943: Self-host: `cljs.pprint`'s macros can't be compiled
* CLJS-1945: cljs.spec/every-impl kind-fn kind-form dead code
* CLJS-1944: Can't spec generate non-vector collections
* CLJS-1946: Self-hosted: don't emit `goog.require` calls for foreign libs
if optimizations different than `:none`
* CLJS-1636: Mark some symbols in core macros ns as private
* CLJS-1939: Fix Node load_file call for foreign-deps
* CLJS-1942: Self-host: `cljs.env.macros` and `cljs.analyzer.macros` can't
be loaded
* CLJS-1935: When calling cljs.spec/valid?, subsequent predicates of
cljs.spec/and are evaluated even when early predicate is unsatisfied

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: how to use new data_readers.cljc feature with deftype

2017-02-24 Thread David Nolen
Please file a report in JIRA. Please do not link to anything outside in the
ticket, all instructions to reproduce should be inline in the issue.

Thanks!
David

On Fri, Feb 17, 2017 at 11:37 AM, Dustin Getz  wrote:

> Just also repped it with clojure 1.9.0-alpha14 via `lein mies new` (as a
> tight a test case as I know how) - here's that repo
> https://github.com/dustingetz/data_readers.cljc-issue-2
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: how to use new data_readers.cljc feature with deftype

2017-02-17 Thread David Nolen
On Fri, Feb 17, 2017 at 9:25 AM, Dustin Getz  wrote:

> {DbId hypercrud.types/read-DbId}


I'm pretty sure that needs to be:

{DbId #'hypercrud.types/read-DbId}

So we can install the handler before it is actually defined.

David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: how to use new data_readers.cljc feature with deftype

2017-02-17 Thread David Nolen
It doesn't work automatically. You need to setup data_readers.cljc to
explicitly handle each tag the reader might encounter.

David

On Thu, Feb 16, 2017 at 12:40 PM, Dustin Getz  wrote:

> My expectation is the compiler, when it sees `(def foo #DbId [1 2])` will
> emit javascript equal to `(def foo (hypercrud.types/read-DbId [1 2])`
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.473, bugfix release

2017-02-10 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.473"]

This is a bugfix release.

As always, feedback welcome!

## Fixes
* CLJS-1931: Closure Compiler {{--generate_exports}} flag not supported
* CLJS-1934: Self-host: require-macros :reload / :reload-all fails
* CLJS-1932: Self-host: Perf regression macroexpand-check
* CLJS-1930: Master broken wrt static field: ES5_STRICT_UNCOMMON
* CLJS-1929: When expanding libs don't include Hidden files
* CLJS-1905: Self-host: Stacktraces for script/test-self-parity
* CLJS-1795: Support more options in the `:closure-warnings` compiler option
* CLJS-1922: Use :file as relative output path for foreign-libs
* CLJS-1831: Self-host: Improperly munge ns names
* CLJS-1925: Use of undeclared Var cljs.user/RegExp when extending protocol
for RegExp
* CLJS-1920: cljs.build.api/node-inputs: package.json files are only added
if module entries are top-leve
* CLJS-1916: __dirname and __filename are not defined when compiling for
Node.js with optimizations :none
* CLJS-1915: cljs.test: Index out of bounds for stack element w/o
line/column

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Upgrading to 1.9.456 challenges with foreign-libs and synchronous XMLHttpRequest in Chrome

2017-02-06 Thread David Nolen
There was a bug reported and since fixed in master. There will be a release
this Friday just to address this regression.

David

On Sat, Feb 4, 2017 at 11:43 PM, Hitesh  wrote:

> I'm trying to upgrade a project from 1.8.51.  It has some foreign libs and
> manually defined externs in it which were working fine.
>
>   :foreign-libs [{:file "https://cdnjs.cloudflare.com/
> ajax/libs/gsap/1.18.5/TweenMax.min.js"
>   :provides ["TweenMax"]}]
>   :externs ["react/externs/react.js"
> "externs/greensock.js"]
>
>
> After upgrading the version of clojurescript, running lein figwheel dumps
> this exception.
>
>
> java.lang.IllegalArgumentException: /ajax/libs/gsap/1.18.5/TweenMax.min.js
> is no
> t a relative path
>  at clojure.java.io$as_relative_path.invokeStatic (io.clj:414)
> clojure.java.io$file.invokeStatic (io.clj:426)
> clojure.java.io$file.invoke (io.clj:418)
> cljs.closure$write_javascript.invokeStatic (closure.clj:1594)
> cljs.closure$write_javascript.invoke (closure.clj:1587)
> cljs.closure$source_on_disk.invokeStatic (closure.clj:1633)
> cljs.closure$source_on_disk.invoke (closure.clj:1628)
> cljs.closure$output_unoptimized$fn__6325.invoke (closure.clj:1671)
> clojure.core$map$fn__4785.invoke (core.clj:2646)
> clojure.lang.LazySeq.sval (LazySeq.java:40)
> clojure.lang.LazySeq.seq (LazySeq.java:49)
> clojure.lang.RT.seq (RT.java:521)
> clojure.core$seq__4357.invokeStatic (core.clj:137)
> clojure.core$filter$fn__4812.invoke (core.clj:2700)
> clojure.lang.LazySeq.sval (LazySeq.java:40)
> clojure.lang.LazySeq.seq (LazySeq.java:49)
> clojure.lang.RT.seq (RT.java:521)
> clojure.core$seq__4357.invokeStatic (core.clj:137)
> clojure.core$map$fn__4785.invoke (core.clj:2637)
> clojure.lang.LazySeq.sval (LazySeq.java:40)
> clojure.lang.LazySeq.seq (LazySeq.java:49)
> clojure.lang.Cons.next (Cons.java:39)
> clojure.lang.RT.next (RT.java:688)
> clojure.core$next__4341.invokeStatic (core.clj:64)
> clojure.core$str$fn__4419.invoke (core.clj:546)
> clojure.core$str.invokeStatic (core.clj:544)
> clojure.core$str.doInvoke (core.clj:533)
> clojure.lang.RestFn.applyTo (RestFn.java:139)
> clojure.core$apply.invokeStatic (core.clj:646)
> clojure.core$apply.invoke (core.clj:641)
>
>
> So although https://github.com/clojure/clojurescript/wiki/Compiler-
> Options#foreign-libs still says that URLs are valid for :file, I
> downloaded the libs and specified them as relative paths.
>
>
>   :foreign-libs [{:file "gsap/1.18.5/TweenMax.min.js"
>   :file-min "gsap/1.18.5/TweenMax.min.js"
>   :provides ["TweenMax"]}]
>   :externs ["react/externs/react.js"
> "externs/greensock.js"]
>
>
> Lein figwheel now happily starts up.  But when I try to access the site in
> Chrome, it doesn't load and has the following new error in the console:
>
>
> Synchronous XMLHttpRequest on the main thread is deprecated because of its
> detrimental effects to the end user's experience. For more help, check
> https://xhr.spec.whatwg.org/.
>
> goog.loadFileSync_  @   base.js:1396
> goog.retrieveAndExecModule_ @   base.js:1419
> (anonymous) @   VM113:1
> goog.writeScriptTag_@   base.js:1223
> goog.importScript_  @   base.js:879
> goog.importModule_  @   base.js:900
> goog.writeScripts_  @   base.js:1323
> goog.require@   base.js:663
> (anonymous) @   (index):75
>
>
> The site works as normal in Safari, figwheel reloads changes.  It's just
> Chrome that's not working.  I'm at a bit of a loss here now.  Any ideas?
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.9.456, Externs Inference & Comprehensive JS Modules Support

2017-01-28 Thread David Nolen
Looks like you have a dependency issue. Use `lein deps :tree` or the
equivalent command to sort it out.

HTH
David

On Saturday, January 28, 2017, Francesco Bellomi <
francesco.bell...@gmail.com> wrote:

> Hi,
>
> first of all, congratulations on this release, it's a huge step ahead.
>
> I'm having an issue compiling a program with advanced optimizations, which
> worked fine with .293
>
> I get the following exception, any ideas on how can i narrow down the
> problem within my source?
>
> Exception in thread "main" java.lang.NoSuchMethodError:
> com.google.common.base.Preconditions.checkState(
> ZLjava/lang/String;Ljava/lang/Object;)V, compiling:(/tmp/form-
> init5778645093287298904.clj:1:73)
> at clojure.lang.Compiler.load(Compiler.java:7442)
> at clojure.lang.Compiler.loadFile(Compiler.java:7368)
> at clojure.main$load_script.invokeStatic(main.clj:277)
> at clojure.main$init_opt.invokeStatic(main.clj:279)
> at clojure.main$init_opt.invoke(main.clj:279)
> at clojure.main$initialize.invokeStatic(main.clj:310)
> at clojure.main$null_opt.invokeStatic(main.clj:344)
> at clojure.main$null_opt.invoke(main.clj:341)
> at clojure.main$main.invokeStatic(main.clj:423)
> at clojure.main$main.doInvoke(main.clj:386)
> at clojure.lang.RestFn.applyTo(RestFn.java:137)
> at clojure.lang.Var.applyTo(Var.java:700)
> at clojure.main.main(main.java:37)
> Caused by: java.lang.NoSuchMethodError: com.google.common.base.
> Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V
> at com.google.javascript.rhino.IR.name(IR.java:363)
> at com.google.javascript.jscomp.ClosureCodingConvention.(
> ClosureCodingConvention.java:474)
> at com.google.javascript.jscomp.Compiler.(Compiler.java:202)
> at com.google.javascript.jscomp.Compiler.(Compiler.java:264)
> at cljs.closure$make_closure_compiler.invokeStatic(closure.
> clj:293)
> at cljs.closure$optimize.invokeStatic(closure.clj:1255)
> at cljs.closure$optimize.doInvoke(closure.clj:1251)
> at clojure.lang.RestFn.applyTo(RestFn.java:139)
> at clojure.core$apply.invokeStatic(core.clj:659)
> at cljs.closure$build.invokeStatic(closure.clj:2113)
> at cljs.build.api$build.invokeStatic(api.clj:205)
> at cljs.build.api$build.invoke(api.clj:193)
> at cljs.build.api$build.invokeStatic(api.clj:196)
> at cljsbuild.compiler$compile_cljs$fn__6997.invoke(compiler.
> clj:59)
> at cljsbuild.compiler$compile_cljs.invokeStatic(compiler.clj:59)
> at cljsbuild.compiler$run_compiler.invokeStatic(compiler.clj:167)
> at user$eval7152$iter__7200__7204$fn__7205$fn__7231.invoke(
> form-init5778645093287298904.clj:1)
> at user$eval7152$iter__7200__7204$fn__7205.invoke(form-
> init5778645093287298904.clj:1)
> at clojure.lang.LazySeq.sval(LazySeq.java:40)
> at clojure.lang.LazySeq.seq(LazySeq.java:49)
> at clojure.lang.RT.seq(RT.java:525)
> at clojure.core$seq__6422.invokeStatic(core.clj:137)
> at clojure.core$dorun.invokeStatic(core.clj:3106)
> at clojure.core$doall.invokeStatic(core.clj:3121)
> at user$eval7152.invokeStatic(form-init5778645093287298904.clj:1)
> at user$eval7152.invoke(form-init5778645093287298904.clj:1)
> at clojure.lang.Compiler.eval(Compiler.java:6978)
> at clojure.lang.Compiler.eval(Compiler.java:6968)
> at clojure.lang.Compiler.load(Compiler.java:7430)
> ... 12 more
>
> thanks in advance
>
> Francesco
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com .
> To post to this group, send email to clojurescript@googlegroups.com
> .
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.456, Externs Inference & Comprehensive JS Modules Support

2017-01-27 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.456"]

This is a significant feature release.

The first new feature is externs inference. This should greatly ease
the integration of 3rd party JavaScript libraries incompatible
with Google Closure advanced compilation. By treating the externs
problem as a type-hinting one - we can automatically generate the
required externs for you. This new feature should be considered
of alpha quality and subject to change. Still, feedback is greatly
appreciated to help us better understand how to best deliver this
enhancement.

For details please look at the new guide:
https://clojurescript.org/guides/externs

The second new feature is much more comprehensive support for
JavaScript modules. We now have a good story for integrating the
various kinds of JavaScript modules into a ClojureScript project
build without resorting to JavaScript build tools. This feature
even includes the consumption of modules directly from NPM.

There are far too many details to cover in this release announcement
so once again refer to the guide:
https://clojurescript.org/guides/javascript-modules

Like externs inference this feature is alpha and subject to change.
Again feedback is critical to guiding this enhancement in the
right direction.

I'd like to especially call out Maria Geller's Google Summer of Code work
here around these two major features. This work began almost 2 years
and it's nice to see the long term planning come together so well.

There are quite a few performancement enhancements in this release
related to compiler startup time as well as numerous fixes from
many members of the community.

Congratulations to everyone involved and happy hacking!

## 1.9.456

### Enhancements
* Enhanced JavaScript module support
* Support Node resolution for CommonJS modules
* Externs inference
* Performance enhancements
* CLJS-1835: REPL load special fn
* CLJS-1194: Support for `data_readers.cljc`

### Changes
* expose :closure-module-roots option
* bump Closure Compiler dep
* Under Node.js don't need require entries in the goog.addDependency calls
in cljs_deps.js
* do not throw on circular dependencies between Google Closure JS libs
* str macro should call str/1 function directly, added str benchmark
* CLJS-1718: Foreign lib files should be placed in a relative location
* CLJS-1858: Should allow `:cache-analysis true` and `cache-analysis-format
nil`
* CLJS-1616: Self-host: improve documentation for compile-str
* CLJS-1643: Emit more informative error when emitting a type which has no
emit multimethod case
* CLJS-1816: Basic timing info in verbose output
* add support for emitting inferred externs file
* add cljs.analyzer/analyze-form-seq
* CLJS-1666: Flag to optionally disable transit analysis cache encoding
* Provide more descriptive error message when invalid libspec detected
* CLJS-1768: cljs.spec perf tweaks
* CLJS-1842: Remove analyzer `:merge` hack for REPLs
* CLJS-1839: Relax the constraint that `new` and dot forms must be passed a
symbol
* default to :ecmascript3 if :language-out not specified for :es6 module
* respect :language-out when processing ES6 modules
* default to :ecmascript3 if :language-out not specified for :es6 module
* inline some?

### Fixes
* CLJS-1911: Need to bind Node.js require
* CLJS-1909: Self-host: circular dependency when requiring cljs.reader
* CLJS-1906: Self-host: script/test-self-parity fails
* CLJS-1903: Remove anonymous vars from dir and apropos output
* CLJS-1897: Too many externs generated
* CLJS-1895: Externs inference needs to support user supplied externs
* CLJS-1873: Self-host: Unit tests fail owing to test.check dep
* CLJS-1874: Self-host: :fn-var true for macros
* CLJS-1877: :foreign-libs entries should be allowed to specify directories
along with individual files
* CLJS-1890: s/form for s/nilable in cljs.spec does not match clojure.spec
* CLJS-1811: Can't compose cljs.spec.test.instrument (or
cljs.spec.test.check) with cljs.spec.test.enumerate-namespace
* CLJS-1894: Unnecessary analysis of core.cljs on first compile
* CLJS-1893: Unnecessary analysis of core.cljs
* CLJS-1892: Dependencies in JARs are analyzed every time even if an
analysis cache file exists
* CLJS-1887: add :watch-error-fn option
* CLJS-1883 Foreign libs can't be found on Node.js
* CLJS-1882 Fix constant table sort order when using :modules
* CLJS-1853: var metadata in compiled output
* CLJS-1878: prefer `some?` over `(not (nil? %))` in analyzer
* CLJS-1880: missing ^boolean on some hasNext calls
* CLJS-1875 Difference in seqable? between CLJ & CLJS
* CLJS-1829: get does not return not-found on negative indexes
* cljs.spec.test/unstrument shouldn't return the names of vars that weren't
instrumented in the first place. Fixes CLJS-1812
* CLJS-1786: Add knob for controlling printing of namespaced maps
* CLJS-1836: nth doesn't t

Re: [ClojureScript] Gradually porting from jsx to cljs

2017-01-23 Thread David Nolen
We're actually looking to address this problem directly. There'll be more
details in the very near future.

David

On Mon, Jan 23, 2017 at 2:22 PM, Michael Blume  wrote:

> Apologies for asking what's probably a common newbie question, but Google
> is failing me today.
>
> I have an existing project using react.js, react-router, jsx, and webpack.
> I'd like to port one component to clojurescript as a proof of concept,
> perhaps using reagent, and then have a hybrid project with lots of jsx
> files and one cljs file that builds and works and preferably has source
> maps for both. Can I do that? I'd rather have a gradual transition than try
> to port the whole thing in one go.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Why is each closure library namespace in a separate js file?

2017-01-22 Thread David Nolen
Are you sure this isn't a web server configuration issue? We saw long load
times with browser REPL due to insufficient concurrency when serving
resources. After that was fixed, loading 100+ namespaces into a web browser
took less than 1 second during local dev.

David

On Fri, Jan 20, 2017 at 2:43 AM, Justin Ratner 
wrote:

> We have a fairly large project in which we require a good bit of closure
> library functionality. While developing with :optimizations :none, hundreds
> of closure library files are loaded when the page loads. This means that
> the page takes 7-10 seconds to load. That doesn't seem like much, but when
> you are refreshing the page many times while developing (I don't always
> trust code-reload), it adds up.
>
> Most of the time is spent waiting for browser connections to open up, so
> the next file can be downloaded. Most browsers can only download a handful
> of files from one domain at once.
>
> Wouldn't it be better if the closure library was served in a single js
> file?
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Google Closure Compiler in JavaScript Released

2016-12-06 Thread David Nolen
Macros are just a completely different topic from the original post.
Separating the macro system from runtime means you don't have 2.5mb of
JavaScript which can't be dead code eliminated when you start writing a
simple client application.

David

On Tue, Dec 6, 2016 at 6:21 PM, mars0i  wrote:

> On Tuesday, December 6, 2016 at 11:31:59 AM UTC-6, David Nolen wrote:
> > Yes we are aware of this and we do not intend to pursue since it offers
> nothing in the way of real benefits.
> >
> >
> > It does seem potentially useful to third party efforts around
> bootstrapped ClojureScript, but that's about it.
>
> I don't have an understanding of the tradeoffs involved, but given the
> little bit of semantic and practical funkiness involved in macros being
> compiled in Clojure and run in Clojurescript, I would have thought that
> moving to an all Javascript/Clojurescript system could possibly be a good
> thing in the long run.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Google Closure Compiler in JavaScript Released

2016-12-06 Thread David Nolen
Yes we are aware of this and we do not intend to pursue since it offers
nothing in the way of real benefits.

It does seem potentially useful to third party efforts around bootstrapped
ClojureScript, but that's about it.

David

On Tue, Dec 6, 2016 at 12:21 PM, James Thornton 
wrote:

> Google released its JavaScript version of the Closure Compiler – "this
> allows Closure Compiler to run entirely in JS. Java is not required":
>
> * https://github.com/google/closure-compiler-js
> * https://developers.googleblog.com/2016/08/closure-compiler-
> in-javascript.html
>
> Switching to the JS compiler means JS devs coming to ClojureScript will be
> able to use the tools they're familiar with a simplify the onboarding docs
> on the website.
>
> I created a ticket here: http://dev.clojure.org/jira/browse/CLJS-1865
>
> NB: I discovered this while experimenting with using ClojureScript with
> Polymer:
>
> * https://medium.com/dev-channel/polymer-the-closure-
> compiler-e80dd249d9d7#.10xytauqf
>
> * http://closuretools.blogspot.com/2016/06/using-polymer-
> with-closure-compiler-part-1.html
>
> - James
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Comparing maps and records

2016-11-21 Thread David Nolen
Just a bug. File an issue in JIRA.

Thanks!

David

On Sun, Nov 20, 2016 at 10:58 AM, Juan Facorro 
wrote:

> Hi all,
>
> (This might have been asked before, but I couldn't find anything through a
> search in the group history or google.)
>
> First of all, Clojure/ClojureScript are awesome!
>
> I found the result of comparing a map and a record is different based on
> the order of the arguments to =:
>
> To quit, type: :cljs/quit
> cljs.user=> (defrecord R [])
> cljs.user/R
> cljs.user=> (= {} (R.))
> true
> cljs.user=> (= (R.) {})
> false
>
> I tried the code above with tags r1.7.228, r1.8.34 and 1.9.293.
>
> Is this expected behavior?
>
> This seems to be rooted in the fact that when a map is the first argument
> the function used to make the comparison is the implementation of "equiv"
> from the map. But when a record is the first argument the implementation
> used is the one from the record, which checks if the types of both
> arguments are equal.
>
> The behavior is Clojure (JVM) is consistent:
>
> user=> (defrecord R [])
> user.R
> user=> (= {} (R.))
> true
> user=> (= (R.) {})
> false
>
> I suspect this works consistenly since the implementation of "equiv" in
> "clojure.lang.APersistentMap" checks for the marker interface
> "MapEquivalence".
>
> Kind regards,
> Juan
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] :preamble with modular compilation

2016-10-30 Thread David Nolen
:preamble is just for prepending copyright / licenses etc. Nothing more.
Using it to add code is not recommended and not something we intend to
support.

David

On Fri, Oct 28, 2016 at 7:07 PM, Matthew Chadwick 
wrote:

> any idea why :preamble doesnt seem to work with modular compilation ? I
> want to prepend importScripts() to the start of my generated js, but only
> for one module (a webworker)
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Expected change in `extend-type` behaviour after Cljs 1.8.40?

2016-10-20 Thread David Nolen
You should be able to make a minimal case for this without external libs.
File an issue in JIRA with the minima reproducer.

Thanks,
David

On Thu, Oct 20, 2016 at 2:29 AM, Peter Taoussanis 
wrote:

> Hi all,
>
> Was wondering if anyone might be familiar with the reason for some
> unexpected behaviour I'm seeing?
>
> (extend-type js/jQuery
>   ILookup
>   (-lookup
> ([this k] nil)
> ([this k not-found] nil))
>   IFn
>   (-invoke
> ([this k] (-lookup this k))
> ([this k not-found] (-lookup this k not-found
>
> This works fine against ClojureScript <= 1.8.40, but against >= 1.8.51 (up
> to 1.9.293) triggers:
> `WARNING: Use of undeclared Var taoensso.lib.web/jQuery`.
>
> I'll note a peculiarity: it's specifically the `-lookup` call that
> triggers the compilation warning. Avoiding that call and extending to other
> protocols like ICounted, etc. work as usual.
>
> For example, the following will *not* produce a warning:
>
> (extend-type js/jQuery
>   ILookup
>   (-lookup
> ([this k] nil)
> ([this k not-found] nil))
>   IFn
>   (-invoke
> ([this k] nil #_(-lookup this k))
> ([this k not-found] nil #_(-lookup this k not-found
>
> Am I possibly missing something simple? Couldn't see any obvious
> explanation in the changelog at https://groups.google.com/
> forum/#!topic/clojurescript/fR1PVRXtzCI
>
> Thanks, cheers!
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.293

2016-10-19 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.293"]

This release fixes a major issue with transit analysis caching where
files were leaked. It also includes a very significant compiler
enhancement thanks to Antonio Monteiro - you can now create
ClojureScript files without declaring a namespace. This opens the door
to making a much larger class of Clojure programs portable to
ClojureScript. `require` and other ns related macros are now available
granted that they appear at the top of the file. Please take careful
note that they are not functions and cannot be used in dynamic
situations. Still this eases writing simple scripts and the door is
now open to finally support data literals in a comprehensive way.

We also bumped the Google Closure compiler dependency. Please note
that Closure Compiler has made breaking changes around JS module
processing so this version of ClojureScript is pinned to this latest
release.

A huge thanks to the many people old and new that contributed to this
release.

As always, feedback is most welcome!

## 1.9.293

### Enhancements
* CLJS-1346: Support require outside of ns

### Changes
* CLJS-1762: Bump Closure Compiler, refactor module support
* CLJS-1658: testing for protocol membership may return false positives
* CLJS-1536: REPL def symbol init collision
* CLJS-1805: Source map should take false
* CLJS-1804: Self-host: process namespace side-effects for new require
without NS
* CLJS-1803: Use new require capability in REPLs
* CLJS-1796: Measure Google Closure specific optimization time
* CLJS-1782: Self-host: allow namespaces to require their own macros
* CLJS-1563: :source-map option to cljs.build.api/build should take nil
* CLJS-1785: Warn on reference to js/foo shadowed by local binding

### Fixes
* make String an implicit ns like Math. revert char? and clarify docstring.
add unit tests for char?
* fix cljs.spec.test/check docstring
* CLJS-1826: Self-host: load-deps doesn't honor `:reload` and `reload-all`
* CLJS-1825: :source-map error when passing `false` under simple
optimizations
* CLJS-1821: `add-preloads` should only touch sources if `:preloads` option
specified
* CLJS-1814: Move docstrings for require, etc. from `cljs.repl` to their
new definitions in `cljs.core`
* CLJS-1809: Add 0/1 arity to `into`
* CLJS-1824: transit cache feature leaks files
* CLJS-1294: Let macroexpand(-1) accept any quoted argument.
* CLJS-1818: (hash false) returns different value from Clojure
* CLJS-1817: Strange result when assoc'ing 0 to persistent hash map
* CLJS-1815: Fix failing analyzer tests
* follow-up on CLJS-460 defmulti ignores optional :hierarchy argument
* CLJS-1807: Better error messages for `ns*` calls
* CLJS-1802: Generated namespaces should be of the form `cljs.user.file`
* CLJ-1935: Use multimethod dispatch value method lookup to take
hierarchies into account in multi-spec
* CLJS-1682 :foreign-libs with module conversion does not works properly if
it is used form deps.cljs
* CLJS-1710: spec/double-in not implemented
* CLJS-1787: Make cljs.spec explain pluggable
* CLJS-1781: Add cljs.hash-map-test to self-parity tests
* CLJS-1788: Port CLJ-2004: include retag in multi-spec form
* CLJS-1765: Empty iterator for hash maps with nil key
* CLJS-1784: nth doesn't throw on strings or arrays
* CLJS-1773: Self-host: Don't resolve unqualified symbols / keywords with
$macros
* CLJS-1770: goog-defines broken for integers
* CLJS-1600: Destructuring defprotocol fn args causes defrecord impls to
silently fail
* CLJS-1335: resolve-macro-var: information missing for macros
* CLJS-1633: Improve error associated with invalid foreign-libs :file path
* CLJS-1775: `get` with `nil` returns as if `get` with `0`
* CLJS-1780: Records without extmaps fail to iterate
* CLJS-1774: Self-host: Report filenames in warns in test-self-parity
* CLJS-1779: keyword 2-arity constructor accepts anything for both
parameters which leads to different hashing

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] INTERNAL COMPILER ERROR starting with Cljs >= 1.8.51

2016-10-18 Thread David Nolen
JHust looks like a Google Closure problem. We occasionally bump Google
Closure and they occasionally introduce bugs. You might want to try more
slightly older or slightly more recent versions of Google Closure.

HTH,
David

On Tue, Oct 18, 2016 at 8:53 AM, Peter Taoussanis 
wrote:

> Hi there!
>
> Would anyone possibly know where to start debugging this?
>
> I have a large codebase that compiles fine with ClojureScript <= 1.8.40.
>
> Starting from ClojureScript 1.8.51 (that is 1.8.51, 1.9.14, 1.9.76) I see:
>
> java.lang.RuntimeException: INTERNAL COMPILER ERROR.
> Please report this problem.
>
> null
>   Node(NAME Element): externs.zip//browser/ie_vml.js:29:0
> Element.prototype.coordorigin;
>   Parent(GETPROP): externs.zip//browser/ie_vml.js:29:0
> Element.prototype.coordorigin;
>
> at com.google.javascript.jscomp.VarCheck$
> RedeclarationCheckHandler.onRedeclaration(VarCheck.java:380)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.
> declareVar(Es6SyntacticScopeCreator.java:262)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.
> declareLHS(Es6SyntacticScopeCreator.java:138)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.scanVars(
> Es6SyntacticScopeCreator.java:165)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.scanVars(
> Es6SyntacticScopeCreator.java:233)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.scanVars(
> Es6SyntacticScopeCreator.java:233)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.scanRoot(
> Es6SyntacticScopeCreator.java:120)
> at com.google.javascript.jscomp.Es6SyntacticScopeCreator.
> createScope(Es6SyntacticScopeCreator.java:65)
> at com.google.javascript.jscomp.NodeTraversal.getScope(
> NodeTraversal.java:787)
> at com.google.javascript.jscomp.VarCheck$
> NameRefInExternsCheck.visit(VarCheck.java:287)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:623)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:617)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:617)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:617)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:617)
> at com.google.javascript.jscomp.NodeTraversal.traverseBranch(
> NodeTraversal.java:617)
> at com.google.javascript.jscomp.NodeTraversal.traverse(
> NodeTraversal.java:297)
> at com.google.javascript.jscomp.VarCheck.process(VarCheck.
> java:138)
> at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.
> process(PhaseOptimizer.java:285)
> at com.google.javascript.jscomp.PhaseOptimizer.process(
> PhaseOptimizer.java:217)
> at com.google.javascript.jscomp.Compiler.check(Compiler.java:777)
> at com.google.javascript.jscomp.Compiler.compileInternal(
> Compiler.java:693)
> at com.google.javascript.jscomp.Compiler.access$000(Compiler.
> java:83)
> at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:651)
> at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:648)
> at com.google.javascript.jscomp.CompilerExecutor$2.call(
> CompilerExecutor.java:93)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
> ... 30 more
> Subprocess failed
>
>
> Any pointers would be welcome, thanks!
>
> Cheers :-)
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] app.js around 1.9MB : need help

2016-10-01 Thread David Nolen
JS is generally served gzipped, so measure that.

David

On Sat, Oct 1, 2016 at 5:19 AM, Raghu K  wrote:

> Hi All,
> I have created a luminus web project and after the final compilation i get
> the app.js to be around 1.9MB. I am using the advanced compilation.
> Any ideas on how to reduce the file size.
> My project.clj is as follows
> :description "FIXME: write description"
>   :url "http://example.com/FIXME";
>
>   :dependencies [[ch.qos.logback/logback-classic "1.1.7"]
>  [re-frame "0.8.0"]
>  [cljs-ajax "0.5.8"]
>  [secretary "1.2.3"]
>  [reagent-utils "0.2.0"]
>  ;[reagent "0.6.0-rc"]
>  [reagent "0.6.0-rc" :exclusions [org.clojure/tools.reader
> cljsjs/react]]
>  [org.clojure/clojurescript "1.9.225" :scope "provided"]
>  [org.clojure/clojure "1.8.0"]
>  [selmer "1.0.7"]
>  [markdown-clj "0.9.89"]
>  [ring-middleware-format "0.7.0"]
>  [metosin/ring-http-response "0.8.0"]
>  [bouncer "1.0.0"]
>  [org.webjars/bootstrap "4.0.0-alpha.3"]
>  [org.webjars/font-awesome "4.6.3"]
>  [org.webjars.bower/tether "1.3.3"]
>  [org.clojure/tools.logging "0.3.1"]
>  [compojure "1.5.1"]
>  [ring-webjars "0.1.1"]
>  [ring/ring-defaults "0.2.1"]
>  [luminus/ring-ttl-session "0.3.1"]
>  [mount "0.1.10"]
>  [cprop "0.1.9"]
>  [org.clojure/tools.cli "0.3.5"]
>  [cljs-react-material-ui "0.2.19"]
>  [luminus-nrepl "0.1.4"]
>  [buddy "1.0.0"]
>  [com.draines/postal "2.0.0"]
>  [com.taoensso/timbre "4.1.1"]
>  [org.clojure/core.async "0.1.346.0-17112a-alpha"]
>  [alandipert/storage-atom "2.0.1"]
>  [twilio-api "1.0.1"]
>  [luminus-http-kit "0.1.4"]]
>
>   :min-lein-version "2.0.0"
>
>   :jvm-opts ["-server" "-Dconf=.lein-env"]
>   :source-paths ["src/clj" "src/cljc"]
>   :resource-paths ["resources" "target/cljsbuild"]
>   :target-path "target/%s/"
>   :main materiall.core
>
>   :plugins [[lein-cprop "1.0.1"]
> [lein-cljsbuild "1.1.4"]]
>   :clean-targets ^{:protect false}
>   [:target-path [:cljsbuild :builds :app :compiler :output-dir]
> [:cljsbuild :builds :app :compiler :output-to]]
>   :figwheel
>   {:http-server-root "public"
>:nrepl-port 7002
>:css-dirs ["resources/public/css"]
>:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
>
>
>   :profiles
>   {:uberjar {:omit-source true
>  :prep-tasks ["compile" ["cljsbuild" "once" "min"]]
>  :cljsbuild
>  {:builds
>   {:min
>{:source-paths ["src/cljc" "src/cljs" "env/prod/cljs"]
> :compiler
> {:output-to "target/cljsbuild/public/js/app.js"
>  :externs ["react/externs/react.js"]
>  :optimizations :advanced
>  :pretty-print false
>  :closure-warnings
>  {:externs-validation :off :non-standard-jsdoc :off}
>
>
>  :aot :all
>  :uberjar-name "mater.jar"
>  :source-paths ["env/prod/clj"]
>  :resource-paths ["env/prod/resources"]}
>
>:dev   [:project/dev :profiles/dev]
>:test  [:project/test :profiles/test]
>
>:project/dev  {:dependencies [[prone "1.1.1"]
>  [ring/ring-mock "0.3.0"]
>  [ring/ring-devel "1.5.0"]
>  [pjstadig/humane-test-output "0.8.1"]
>  [doo "0.1.7"]
>  [binaryage/devtools "0.8.1"]
>  [figwheel-sidecar "0.5.4-7"]
>  [com.cemerick/piggieback
> "0.2.2-SNAPSHOT"]]
>   :plugins  [[com.jakemccrary/lein-test-refresh
> "0.14.0"]
>  [lein-doo "0.1.7"]
>  [lein-figwheel "0.5.4-7"]
>  [org.clojure/clojurescript "1.9.225"]]
>   :cljsbuild
>   {:builds
>{:app
> {:source-paths ["src/cljs" "src/cljc" "env/dev/cljs"]
>  :compiler
>  {:main "mater.app"
>   :asset-path "/js/out"
>   :output-to "target/cljsbuild/public/js/app.js"
>   :output-dir "target/cljsbuild/public/js/out"
>   :source-map true
>   :optimizations :none
>   :pretty-print true
>
>
>
>   :doo {:build "test"}
>   :source-p

[ClojureScript] Re: ANN: ClojureScript 1.9.225, cljs.spec fixes

2016-09-06 Thread David Nolen
I just cut 1.9.229. It includes a spec fix as well as a bug around
computing the js dependency index in the presence of .cljc & .cljs files
with the same namespace.

On Fri, Aug 26, 2016 at 6:02 PM, David Nolen  wrote:

> I just cut 1.9.227. The only change was a warning regression around
> cljs.core excludes
>
> David
>
> On Fri, Aug 19, 2016 at 1:40 PM, David Nolen 
> wrote:
>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Leiningen dependency information:
>>
>> [org.clojure/clojurescript "1.9.225"]
>>
>> A bug fix release for cljs.spec and a REPL regression.
>>
>> As always feedback welcome!
>>
>> ## 1.9.225
>>
>> ### Fixes
>> * CLJS-1759: Errors writing transit analysis cache if parallel build
>> * CLJS-1760: Self-host: test-cljs-1757 failing in test-self-parity
>> * CLJS-1751: port fix lost type hints in map destructuring
>> * CLJS-1756: Add test.check JAR to the bootstrap script
>> * CLJS-1757: cljs.spec/exercise-fn doesn't work when passed a quoted
>> symbol
>> * CLJS-1754: Add boolean? generator
>> * fix REPL regression which removed warnings
>>
>>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.9.225, cljs.spec fixes

2016-08-26 Thread David Nolen
I just cut 1.9.227. The only change was a warning regression around
cljs.core excludes

David

On Fri, Aug 19, 2016 at 1:40 PM, David Nolen  wrote:

> ClojureScript, the Clojure compiler that emits JavaScript source code.
>
> README and source code: https://github.com/clojure/clojurescript
>
> Leiningen dependency information:
>
> [org.clojure/clojurescript "1.9.225"]
>
> A bug fix release for cljs.spec and a REPL regression.
>
> As always feedback welcome!
>
> ## 1.9.225
>
> ### Fixes
> * CLJS-1759: Errors writing transit analysis cache if parallel build
> * CLJS-1760: Self-host: test-cljs-1757 failing in test-self-parity
> * CLJS-1751: port fix lost type hints in map destructuring
> * CLJS-1756: Add test.check JAR to the bootstrap script
> * CLJS-1757: cljs.spec/exercise-fn doesn't work when passed a quoted symbol
> * CLJS-1754: Add boolean? generator
> * fix REPL regression which removed warnings
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] AMD support

2016-08-19 Thread David Nolen
Maria Geller's blog posts are still the best source of information. Someone
should take the time to document this on the wiki and the new website.

More useful things that anyone can contribute.

I haven't yet had a need to use it myself so I can't offer any more
information.

David

On Fri, Aug 19, 2016 at 9:41 PM, Peter B. West 
wrote:

> Thanks David.
>
> Is this (what works and what doesn’t) spelled out anywhere, or is it all
> implicit knowledge.
>
> Peter
>
> > On 20 Aug 2016, at 9:53 am, David Nolen  wrote:
> >
> > Various bits work (and it appears quite well) but it needs more
> attending to than anybody currently actively involved in ClojureScript
> compiler work has time for at the moment.
> >
> > Definitely a great area for impactful contribution.
> >
> > David
> >
> > On Fri, Aug 19, 2016 at 7:47 PM, Peter B. West 
> wrote:
> > Last year Maria was working on support for AMD, Common JS and ES6
> modules for ClojureScript.  I notice that the closure-compiler wiki has a
> page about modules (https://github.com/google/closure-compiler/wiki/JS-
> Modules) that mentions ES6, Common JS and goog.module.  That page says
> that 20160517 or newer is required for full module interop.
> >
> > What’s the status of module support in ClojureScript?
> >
> > —
> > Peter West
> > p...@pbw.id.au
> > “‘Am I not allowed to do what I choose with what belongs to me?’”
> >
> > --
> > Note that posts from new members are moderated - please be patient with
> your first post.
> > ---
> > You received this message because you are subscribed to the Google
> Groups "ClojureScript" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to clojurescript+unsubscr...@googlegroups.com.
> > To post to this group, send email to clojurescript@googlegroups.com.
> > Visit this group at https://groups.google.com/group/clojurescript.
> >
> >
> > --
> > Note that posts from new members are moderated - please be patient with
> your first post.
> > ---
> > You received this message because you are subscribed to the Google
> Groups "ClojureScript" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to clojurescript+unsubscr...@googlegroups.com.
> > To post to this group, send email to clojurescript@googlegroups.com.
> > Visit this group at https://groups.google.com/group/clojurescript.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] AMD support

2016-08-19 Thread David Nolen
Various bits work (and it appears quite well) but it needs more attending
to than anybody currently actively involved in ClojureScript compiler work
has time for at the moment.

Definitely a great area for impactful contribution.

David

On Fri, Aug 19, 2016 at 7:47 PM, Peter B. West 
wrote:

> Last year Maria was working on support for AMD, Common JS and ES6 modules
> for ClojureScript.  I notice that the closure-compiler wiki has a page
> about modules (https://github.com/google/closure-compiler/wiki/JS-Modules)
> that mentions ES6, Common JS and goog.module.  That page says that 20160517
> or newer is required for full module interop.
>
> What’s the status of module support in ClojureScript?
>
> —
> Peter West
> p...@pbw.id.au
> “‘Am I not allowed to do what I choose with what belongs to me?’”
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.225, cljs.spec fixes

2016-08-19 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.225"]

A bug fix release for cljs.spec and a REPL regression.

As always feedback welcome!

## 1.9.225

### Fixes
* CLJS-1759: Errors writing transit analysis cache if parallel build
* CLJS-1760: Self-host: test-cljs-1757 failing in test-self-parity
* CLJS-1751: port fix lost type hints in map destructuring
* CLJS-1756: Add test.check JAR to the bootstrap script
* CLJS-1757: cljs.spec/exercise-fn doesn't work when passed a quoted symbol
* CLJS-1754: Add boolean? generator
* fix REPL regression which removed warnings

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] ClojureScript Compilation via Command Line

2016-08-15 Thread David Nolen
It's not possible but only because nobody has contributed the necessary
patches. I'd be happy to see a comprehensive CLI story.

David

On Mon, Aug 15, 2016 at 8:00 PM, Brandeis King 
wrote:

> Hi,
>
> I understand ClojureScript can be compiled from the command line with:
>
> java -cp cljs.jar:src clojure.main build.clj
>
> Provided the system has the standalone ClojureScript jar and a "build"
> file with the following content:
>
> (require 'cljs.build.api)
>
> (cljs.build.api/build "src" {:output-to "out/main.js"})
>
> However, is it possible to compile ClojureScript via the command line
> without a "build" file and with traditional command line arguments, e.g.
> --output-to "out/main.js"?
>
> Thanks.
>
> -Brandeis
>
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.9.211, cljs.spec fixes

2016-08-15 Thread David Nolen
I just cut 1.9.216, the relevant changes are fixing a regression around
instrumenting multi-arity fns and adding spec assert.

On Mon, Aug 15, 2016 at 8:58 AM, David Nolen  wrote:

> ClojureScript, the Clojure compiler that emits JavaScript source code.
>
> README and source code: https://github.com/clojure/clojurescript
>
> Leiningen dependency information:
>
> [org.clojure/clojurescript "1.9.211"]
>
> This release addresses a few bugs around cljs.spec discovered in the
> last release along with relevant fixes for self-hosted ClojureScript.
>
> As always feedback welcome!
>
> ## 1.9.211
>
> ### Fixes
> * CLJS-1746: Log the result of loading a dependency
> * CLJS-1657: Self-host: Implicit macro loading with alias
> * CLJS-1742: Add docstring for new refer-clojure REPL special
> * CLJS-1274: Allow assignment to namespace-qualified names in current
> namespace
> * CLJS-1744: rest produces nil for larger maps
> * CLJS-1740: Self-host: Need to port more of CLJS-1733
> * CLJS-1741: Add :rename to :refer-clojure in ns docstring
> * CLJS-1737: Self-host: clojure alias implicit macro use regression
> * invalid cljs.spec/merge res call
> * CLJS-1739: seq on map literal with 9 elements leads to rest producing nil
> * CLJS-1738: Self-host: need to update call to check-use-macros-inferring-
> missing
>
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Issue with cljs.pprint and tagged literals/elements

2016-08-15 Thread David Nolen
Open an issue in JIRA.

Thanks!
David

On Mon, Aug 15, 2016 at 6:37 AM, Miroslav Kubíček <
miroslav.kubi...@gmail.com> wrote:

> Hi there!
> I am having troubles making the cljs pretty print (cljs.pprint/pprint)
> behave the same way as the regular cljs or clj print function when it goes
> down to tagged elements that are by default used to denote custom records.
>
> See example below - pr, pr-str, print and print-str functions all use the
> default approach toward creating (edn-like) tagged element for MyRecord adn
> all produce the same result:
> #cljs.user.MyRecord{:value "a"}
>
> On the other hand pprint just ignores the record's tag and simply just
> traverses/prints it as a map:
> {:value "a"}
>
> Is there some setting and/or parameter in cljs.pprint namespace I am
> missing? I looked briefly at the code, but it seems it uses print-str by
> default - so maybe it just traverses the graph depth-first and does not
> check for every node's type?
>
> THIS WORKS:
> cljs.user=> (defrecord MyRecord [value])
> cljs.user/MyRecord
> cljs.user=> (pr (MyRecord. "a"))
> #cljs.user.MyRecord{:value "a"}
> nil
> cljs.user=> (pr-str (MyRecord. "a"))
> "#cljs.user.MyRecord{:value \"a\"}"
> cljs.user=> (print (MyRecord. "a"))
> #cljs.user.MyRecord{:value a}
> nil
> cljs.user=> (print-str (MyRecord. "a"))
> "#cljs.user.MyRecord{:value a}"
>
> BUT THIS DOESN'T:
> cljs.user=> (cljs.pprint/pprint (MyRecord. "a"))
> {:value "a"}
> ("{:value \"a\"}\n")
> cljs.user=> (with-out-str (cljs.pprint/pprint (MyRecord. "a")))
> "{:value \"a\"}\n"
>
> Thanks for help!
>
> Cheers
> Miro
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.211, cljs.spec fixes

2016-08-15 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.211"]

This release addresses a few bugs around cljs.spec discovered in the
last release along with relevant fixes for self-hosted ClojureScript.

As always feedback welcome!

## 1.9.211

### Fixes
* CLJS-1746: Log the result of loading a dependency
* CLJS-1657: Self-host: Implicit macro loading with alias
* CLJS-1742: Add docstring for new refer-clojure REPL special
* CLJS-1274: Allow assignment to namespace-qualified names in current
namespace
* CLJS-1744: rest produces nil for larger maps
* CLJS-1740: Self-host: Need to port more of CLJS-1733
* CLJS-1741: Add :rename to :refer-clojure in ns docstring
* CLJS-1737: Self-host: clojure alias implicit macro use regression
* invalid cljs.spec/merge res call
* CLJS-1739: seq on map literal with 9 elements leads to rest producing nil
* CLJS-1738: Self-host: need to update call to
check-use-macros-inferring-missing

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.198 - cljs.spec, core ns aliasing, macro inference, :rename, and more!

2016-08-13 Thread David Nolen
analyze_form.invokeStatic(analyzer.cljc:2838)
> at cljs.analyzer$analyze_form.invoke(analyzer.cljc:2834)
> at cljs.analyzer$analyze_STAR_.invokeStatic(analyzer.cljc:2885)
> at cljs.analyzer$analyze_STAR_.invoke(analyzer.cljc:2876)
> at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:2901)
> at cljs.analyzer$analyze.invoke(analyzer.cljc:2888)
> at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:2896)
> at cljs.analyzer$analyze.invoke(analyzer.cljc:2888)
> at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:2895)
> cljs.user=> at cljs.analyzer$analyze.invoke(analyzer.cljc:2888)
> at cljs.analyzer$eval2573$fn__2575.invoke(analyzer.cljc:1121)
> at clojure.lang.MultiFn.invoke(MultiFn.java:251)
> at cljs.analyzer$analyze_seq_STAR_.invokeStatic(analyzer.
> cljc:2694)
> at cljs.analyzer$analyze_seq_STAR_.invoke(analyzer.cljc:2692)
> at cljs.analyzer$analyze_seq_STAR__wrap.invokeStatic(
> analyzer.cljc:2699)
> at cljs.analyzer$analyze_seq_STAR__wrap.invoke(analyzer.cljc:2697)
> at cljs.analyzer$analyze_seq.invokeStatic(analyzer.cljc:2720)
> at cljs.analyzer$analyze_seq.invoke(analyzer.cljc:2701)
> at cljs.analyzer$analyze_form.invokeStatic(analyzer.cljc:2838)
> at cljs.analyzer$analyze_form.invoke(analyzer.cljc:2834)
> at cljs.analyzer$analyze_STAR_.invokeStatic(analyzer.cljc:2885)
> at cljs.analyzer$analyze_STAR_.invoke(analyzer.cljc:2876)
> at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:2901)
> at cljs.analyzer$analyze.invoke(analyzer.cljc:2888)
> at cljs.repl$evaluate_form$fn__7452.invoke(repl.cljc:484)
> at cljs.repl$evaluate_form.invokeStatic(repl.cljc:483)
> at cljs.repl$evaluate_form.invoke(repl.cljc:440)
> at cljs.repl$eval_cljs.invokeStatic(repl.cljc:575)
> at cljs.repl$eval_cljs.invoke(repl.cljc:568)
> at cljs.repl$repl_STAR_$read_eval_print__7598.invoke(repl.
> cljc:921)
> at cljs.repl$repl_STAR_$fn__7604$fn__7613.invoke(repl.cljc:960)
> at cljs.repl$repl_STAR_$fn__7604.invoke(repl.cljc:959)
> at cljs.compiler$with_core_cljs.invokeStatic(compiler.cljc:1154)
> at cljs.compiler$with_core_cljs.invoke(compiler.cljc:1145)
> at cljs.repl$repl_STAR_.invokeStatic(repl.cljc:923)
> at cljs.repl$repl_STAR_.invoke(repl.cljc:806)
> at cemerick.piggieback$run_cljs_repl.invokeStatic(piggieback.
> clj:169)
> at cemerick.piggieback$run_cljs_repl.invoke(piggieback.clj:155)
> at clojure.lang.AFn.applyToHelper(AFn.java:171)
> at clojure.lang.AFn.applyTo(AFn.java:144)
> at clojure.core$apply.invokeStatic(core.clj:650)
> at clojure.core$apply.invoke(core.clj:641)
> at cemerick.piggieback$evaluate.invokeStatic(piggieback.clj:258)
> at cemerick.piggieback$evaluate.invoke(piggieback.clj:254)
> at clojure.lang.Var.invoke(Var.java:379)
> at cemerick.piggieback$wrap_cljs_repl$fn__33010$fn__33012$fn__
> 33013.invoke(piggieback.clj:290)
> at cemerick.piggieback$enqueue$fn__32996.invoke(piggieback.
> clj:246)
> at clojure.tools.nrepl.middleware.interruptible_eval$
> run_next$fn__15308.invoke(interruptible_eval.clj:190)
> at clojure.lang.AFn.run(AFn.java:22)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: clojure.lang.ArityException: Wrong number of args (-1) passed
> to: spec/res
> at cljs.analyzer$macroexpand_1_STAR_$fn__3161.invoke(
> analyzer.cljc:2643)
> at cljs.analyzer$macroexpand_1_STAR_.invokeStatic(analyzer.
> cljc:2640)
> at cljs.analyzer$macroexpand_1_STAR_.invoke(analyzer.cljc:2625)
> ... 173 more
>
>
> Is this a bug?
>
>
> 在 2016年8月13日星期六 UTC+8上午3:50:20,David Nolen写道:
> > ClojureScript, the Clojure compiler that emits JavaScript source code.
> >
> >
> > README and source code: https://github.com/clojure/clojurescript
> >
> >
> > Leiningen dependency information:
> >
> >
> > [org.clojure/clojurescript "1.9.198"]
> >
> >
> > This release brings cljs.spec to parity with Clojure
> > 1.9.0-alpha10. This release also includes a large number of
> > enhancements to the ns form:
> >
> >
> > * :refer now features macro inference. There is no longer any need
> >   to supply both :refer and :refer-macros in the same :require, the
> >   compiler will figure it ou

[ClojureScript] ANN: ClojureScript 1.9.198 - cljs.spec, core ns aliasing, macro inference, :rename, and more!

2016-08-12 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.198"]

This release brings cljs.spec to parity with Clojure
1.9.0-alpha10. This release also includes a large number of
enhancements to the ns form:

* :refer now features macro inference. There is no longer any need
  to supply both :refer and :refer-macros in the same :require, the
  compiler will figure it out.

* clojure.* namespaces will now automatically be aliased to their
  ClojureScript equivalents. For example this means that the following
  is perfectly valid ClojureScript:

  (ns foo.bar
(:require [clojure.spec :refer [fspec]]))

  This feature and the previous one should significantly reduce reader
  conditional usage in ns forms.

* thanks to Antonio Monteiro we now support :rename

We also have a new feature that is relevant for tooling such as
Figwheel and cljs-devtools - :preloads. This should now be the
standard way to inject some bit of side-effecting setup after core but
before user code (i.e. connecting REPLs to standard ports, etc.).

There are of course many various small fixes and enhancements, so
a very big thank you to everyone that has contributed.

As always feedback welcome!

## 1.9.198

### Enhancements
* CLJS-1508: Extend ns form to support :rename option
* CLJS-1507: Implicit macro loading: macro var inference in :refer
* CLJS-1692: Autoalias clojure.* to exisiting cljs.* namespaces if
possible
* CLJS-1350: Compiler support for browser REPL
* CLJS-1729: Support `use` special function in REPLs
* CLJS-1730: Support `refer-clojure` special function in REPLs

### Changes
* CLJS-1515: Self-host: Allow :file key in cljs.js/*load-fn*
* add toString implementation to Vars
* Use a js array to create collections in cljs.reader
* CLJS-1640: Use the unshaded version of the closure compiler
* add :browser-repl to list of known opts
* add browser REPL preload
* parity with Clojure 1.9.0-alpha10 clojure.spec
* bump to tools.reader 1.0.0-beta3

### Fixes
* CLJS-1733: Macro inference issue for macros & runtime vars with the same
name
* CLJS-1735: Self-host: cljs.spec speced-vars instance
* CLJS-1736: cljs.spec.test: checkable-syms* called with 0-arity
* CLJS-1708: Self-host: [iu]nstrument-1 needs to qualify [iu]nstrument-1*
* CLJS-1707: Self-host: with-instrument-disabled needs to qualify
*instrument-enabled*
* CLJS-1732: Add docstrings for new use and use-macros REPL specials
* CLJS-1720: Qualify symbols and namespaced keywords in spec macros
* CLJS-1731: Self-host: do_template problem with script/test-self-parity
* CLJS-1556: Invalid code emit for obj literal
* CLJS-1607: bug with `specify!` in JS prototypes with `static-fns` true
* CLJS-1591 avoid analyzing invoke arguments multiple times
* CLJS-1638: :elide-asserts disables atom validators in :advanced
* CLJS-1721: 3-arity get-in fails on types which do not implement ILookup
* CLJS-1728: Update doc for ns for new :rename capability
* CLJS-1727: Regression when evaluating non-sequential forms at the REPL
* CLJS-1490: Watch macro files in cljs.build.api/watch
* CLJS-1719: Port destructuring namespaced keys and symbols
* CLJS-1653: cljs.spec: keys* causes exception
* CLJS-1700: Support clojure.* aliasing when not in vector
* CLJS-1717 remove map from equiv-map
* CLJS-1716: No longer possible to use same alias for :require-macros and
:require
* Use keyword options in js->clj 1-arg impl
* Add support for regex in transit for compiler analysis cache
* Escape non-Latin1 characters before base64 encoding the source-map string
* CLJS-1698: cljs.spec: every res call needs &env
* CLJS-1695: Self-host: Port cljs / clojure namespace aliasing
* CLJS-1697: doc on inferred macros fails
* CLJS-1699: Update docstring for ns
* CLJS-1694: Self-host: Port macro var inference in :refer

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Proper integration of cljs.test and cljs.spec

2016-07-26 Thread David Nolen
cljs.spec is not stable or in sync with Clojure 1.9.0-alpha10 clojure.spec
yet. Working on that. Until then you should only experiment with what's
there and avoid attempting anything serious.

On Tue, Jul 26, 2016 at 7:40 AM,  wrote:

> Hi,
>
> I'm little bit puzzled and didn't find a proper way how to integrate
> clojure.spec with clojure.test yet. My env is ...
>
>  - testing via doo in node
>  - got some cljs.test tests, run by run-tests macro from cljs.test
>  - wrote sample function spec
>
> ...
>
> (s/def ::path
>   (s/with-gen (s/and string? #(string/starts-with? % "/"))
>   #(gen/fmap (fn [s] (let [i (rand-int 1024)]
>(if (odd? i) (str "/" s) s)))
>  (gen/string
>
> (s/def ::method #{"GET" "POST" "DELETE"})
> (s/def ::role #{"*" "owner" "admin" "member"})
> (s/def ::endpoint (s/keys :req-un [::path ::method ::role]))
> (s/def ::endpoints (s/* ::endpoint))
> (s/def ::variables (s/nilable (s/map-of string? string?)))
>
> (s/def ::ret-path (s/and string? #"^/(GET|POST|DELETE)/"))
> (s/def ::ret-paths (s/* ::ret-path))
>
> (s/fdef endpoints->paths
>   :args (s/cat :endpoints ::endpoints :role ::role :variables ::variables)
>   :ret ::ret-paths
>   :fn #(<= (count (:ret %)) (count (-> % :args :endpoints
>
> ... I can check it manually via ...
>
> (cljs.spec.test/check-fn endpoints->paths (s/spec
> 'auth.util.endpoint/endpoints->paths))
>
> ... and it works. I tried to integrate it with cljs.test and it fails.
> When I tried to run-all-tests (cljs.spec.test), I can see that the function
> spec was executed / tested, but testing didn't fail when there was an error
> in spec / function.
>
> 
> ...
> Testing auth.util.endpoint-test
>
> Ran 6 tests containing 23 assertions.
> 0 failures, 0 errors.
> Checking #'auth.util.endpoint/endpoints->paths
> {:result {:cljs.spec/problems {[] {:pred string?, :val 1, :via
> [:auth.util.endpoint/ret-paths :auth.util.endpoint/ret-paths
> :auth.util.endpoint/ret-path :auth.util.endpoint/ret-path], :in [0]}},
> :failed-on :ret}, :seed 1469520712557, :failing-size 0, :num-tests 1, :fail
> [("admin" {})], :shrunk {:total-nodes-visited 2, :depth 1, :result
> {:cljs.spec/problems {[] {:pred string?, :val 1, :via
> [:auth.util.endpoint/ret-paths :auth.util.endpoint/ret-paths
> :auth.util.endpoint/ret-path :auth.util.endpoint/ret-path], :in [0]}},
> :failed-on :ret}, :smallest [("owner" nil)]}}
> 
>
> ... cljs.test tests are executed, failures / errors counted properly.
> cljs.spec tests are executed, but no proper failures / errors counters and
> testing itself didn't fail. Tried to integrate them in a way that I was
> checking output of check-fn in deftest body, testing failed properly, but
> no info why the test failed because of simple boolean test in is.
>
> I'm probably overlooking something. What is the proper way to:
>
>  - test in node via doo
>  - execute cljs.test tests
>  - execute all cljs.spec tests
>  - fail testing if cljs.spec tests failed and display why (explain) and
> correct number of failures / errors
>
> Many thanks,
> Robert
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ClojureScript Quick Start - Error: Could not find or load main class clojure.main

2016-07-18 Thread David Nolen
And all the previous steps worked for you?

On Mon, Jul 18, 2016 at 2:37 AM, Dmitry Kolobov  wrote:

> On Monday, July 11, 2016 at 5:59:42 AM UTC-6, gilmoretj wrote:
> > I suspect there is a MS Windows-specific configuration step missing from
> the Quick Start guide (
> https://github.com/clojure/clojurescript/wiki/Quick-Start).
> >
> > I was alright until I reached "Auto-building". Running the compilation
> step for watch.clj, I got the error message "Error: Could not find or load
> main class clojure.main".
> >
> > I carried on to the "Running ClojureScript on Node.js" section only to
> encounter the same error running the node.clj build.
> >
> > The initial build.clj build worked fine.
>
> I am having the same issue with the NodeJS quick-start section on OSX
> 10.10.1.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] ClojureScript Quick Start - Error: Could not find or load main class clojure.main

2016-07-18 Thread David Nolen
Notice that the Windows steps needs the classpath bits to be in quotes. Or
did you already try that?

java -cp "cljs.jar:src" clojure.main watch.clj

David

On Mon, Jul 11, 2016 at 1:27 PM, gilmoretj  wrote:

> I suspect there is a MS Windows-specific configuration step missing from
> the Quick Start guide (
> https://github.com/clojure/clojurescript/wiki/Quick-Start).
>
> I was alright until I reached "Auto-building". Running the compilation
> step for watch.clj, I got the error message "Error: Could not find or load
> main class clojure.main".
>
> I carried on to the "Running ClojureScript on Node.js" section only to
> encounter the same error running the node.clj build.
>
> The initial build.clj build worked fine.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] How to Integrate Third Party Libraries

2016-07-11 Thread David Nolen
Many popular 3rd party libs are available via http://cljsjs.github.io. Just
include them like any other dependency to your project. For less popular
libraries it's simpler to just use Webpack or whatever to build a custom
foreign dep for usage in your project.

https://github.com/clojure/clojurescript/wiki/Dependencies

HTH,
David

On Wed, Jul 6, 2016 at 3:58 PM, Brandeis King 
wrote:

> Hi,
>
> I recently started playing with ClojureScript, but I do have prior
> experience with Clojure and JavaScript (including React, Flux, Webpack,
> etc.). While I've been able to pick up the basics fairly easily and put
> together toy apps using Reagent and Om, I'm unclear on how to integrate
> third party libraries like Bootstrap, d3, etc. I'd appreciate suggestions
> on how I could/should integrate these libraries into ClojureScript apps.
> Thanks.
>
> Best,
> Brandeis
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Using a cljs project in 'raw' JavaScript

2016-07-07 Thread David Nolen
Does goog.exportSymbol not work for your case? The transit-js project is a
good example of how to make Closure targeted code be usable by regular
JavaScript. It's really no different for ClojureScript.

https://github.com/cognitect/transit-js/blob/620906704f9f6904745895878ad3228607836d31/src/com/cognitect/transit.js#L599-L645

David

On Thu, Jul 7, 2016 at 1:22 PM, Colin Yates  wrote:

> Hi all,
>
> Any tips for including the JavaScript from a cljs project in a non-cljs
> project? I have a rather unusual situation where I have:
>  - util.jar (lots of .cljc files) - the infamous company-wide utility
> library
>  - main.war - actually serves two UIs, one ClojureScript and one
> CoffeeScript using ExtJS (and therefore cannot use google closure)
>
> I want to make the JavaScript in util.jar accessible to the _CoffeeScript_
> part of the main.war. It is already added as a (:requires ...) dependency,
> but the CoffeeScript part has no visibility of that machinery.
>
> The 'main.war' project is built using lein but I am looking for any reason
> to get back into boot.
>
> In the worst case I can:
>  - include a non-advanced compilation of the namespaces in util in util.jar
>  - in main.war, crack the jar open and copy the unadvanced javascript to
> the right place so CoffeeScript can see it
>
> or:
>  - have main.war have a cljsbuild config for the util namespaces
>
> Which all feels very unsophisticated and awkward.
>
> Any thoughts/hints/tips?
>
> Thanks,
>
> Colin
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.89 - cljs.spec & :preloads

2016-06-22 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.89"]

This release fixes several cljs.spec issues. It also includes a new
compiler option - :preloads. This feature is designed to simplify (but
not limited to) the loading of development time side effects such as
enabling printing, REPL connections, and browser tool
integration. With :preloads you may now specify a sequence of
namespaces as symbols to load in order immediately after cljs.core. This
also
means there's a path for providing typical boilerplate as documented
namespaces that users can specify in their dev builds.

As always feedback welcome!

## 1.9.89

### Enhancements
* CLJS-1688: :preloads compiler option for loading other entry points prior
to :main
* cljs.spec - support gen overrides by name in addition to path
* cljs.spec - every and every-kv

### Changes
* added bounded-count

### Fixes
* missing cljs.spec/fn-specs -> cljs.spec/get-spec in cljs.spec.test ns
* CLJS-1687: Self-host: cljs.spec: inst-in-range? and int-in-range? need
qualification
* CLJS-1668: cljs.spec: c alias needs expansion in int-in

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.76

2016-06-17 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.76"]

This release brings cljs.spec to parity with Clojure 1.9.0-alpha7. It
addresses an issue with Transit analysis caching, includes fixes for
cljs.spec support under bootstrapped, bumps the Closure library
dependency, and includes other minor fixes and enhancements.

As always feedback welcome!

## 1.9.76

### Enhancements
* CLJS-1648: Getting Source Info into ex-info data for Analysis Errors
* cljs.spec updated to Clojure 1.9.0-alpha7 changes

### Changes
* bump Google Closure Library dep
* AOT cljs.spec nses

### Fixes
* CLJS-1679: Self-host: Incorporate spec tests
* CLJS-1680: Self-host: Don't require items no longer provided by Closure
* CLJS-1654: cljs.spec: var name in s/fdef non-conformance
* CLJS-1655: cljs.spec: conformer docstring indicates :clojure.spec/invalid
* CLJS-1656: Self-host: cljs.spec: speced-vars* fn not resolving
* CLJS-1661: cljs.spec: non-spec'ed fn var printing
* compute read/write opts for transit if possible, handle JSValue
* CLJS-1660: cljs.spec: Always return var from instrument / unstrument
* CLJS-1671: Bad cljs.spec interactive instrumentation session
* CLJS-1664: The filename aux.cljs is a problem on windows.
* CLJS-1667: bad describe* for and-spec-impl
* CLJS-1699: Self-host: s/fdef ns-qualify *ns* name field access

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Om Next: Reporting Backend Errors on the Frontend

2016-06-08 Thread David Nolen
That's what server-side mutations do there's nothing to wait for. If you're
talking about some kind of push state thing, there's nothing stopping you
from implementing that today and people already have.

David

On Wed, Jun 8, 2016 at 11:11 AM, Max Countryman  wrote:

> Hi David,
>
> Thanks for letting me know!
>
> In the future, should I expect a server-side mutation function to have the
> capability of updating client-side state?
>
>
> Max
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Om Next: Reporting Backend Errors on the Frontend

2016-06-05 Thread David Nolen
There's some work still in progress in om.next master around the error
handling story. For the time being you'll have to sort something out
yourself, but the idea is that error handling will eventually be a first
class feature.

David

On Sun, Jun 5, 2016 at 12:46 PM, Max Countryman  wrote:

> Hi,
>
> I’m curious about the preferred method for communicating errors occurring
> in a backend mutation function.
>
> For example, say we have some input from a frontend form that we need to
> validate on the backend when we submit this form. We have a mutation
> function which carries out form input state to the backend, where we have a
> backend mutation function—this backend mutator checks some state and if all
> is well does something (maybe it’s updating our persistence layer, for
> instance) otherwise it returns an error telling us what went wrong. My
> expectation originally was that the value of this backend mutation function
> would be associated back into my global app state, on the frontend. However
> this does not appear to be the case and so it would seem I need to write a
> reader function just to get this error state—if so this seems awkward and
> inefficient since it implies a second roundtrip. What’s the best way of
> doing something like this?
>
> Please bear in mind I’m relatively new to Om and Om Next—I’m quite likely
> overlooking and misunderstanding things here so any advice is appreciated!
>
> Thanks,
>
>
> Max
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.36 - cljs.spec fixes & performance enhancements

2016-06-03 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.36"]

This release fixes a cljs.spec bug around instrumented multi-arity
fns. It also includes various fixes and performance enhancements from
Clojure. Another performance related change is writing out analysis
caches as Transit if transit-clj is available. This is automatic and
requires no configuration and gives a modest speed bump when launching
REPLs.

As always feedback welcome!

## 1.9.36

### Enhancements
* Write analysis caches as Transit if transit-clj available

### Changes
* Clojure 1f25347
* Clojure 47b8d6b
* Optimize seq (&) destructuring as per commit (0aa3467) of Clojure

### Fixes
* CLJS-1611: Function arity dispatch returns arity
* only print specs in REPL if we actually have some
* CLJS-1663: Calling instrumented multi-arity function causes exception
* CLJS-1650: `cljs.reader/read-map` now returns array-map/hash-map based on
the size of the sequence.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.14, clojure.spec port

2016-06-02 Thread David Nolen
The namespace cljs.spec.gen would clash with the existing var
cljs.spec/gen. The ClojureScript compiler will warn about this when it
happens.

On Thu, Jun 2, 2016 at 9:41 AM, Shaun LeBron 
wrote:

> Oops, I missed that, thanks!
>
> Why is it under `impl`?  I'd actually like to read about what the
> philosophy behind `impl` is since it's been turning up a lot.
>
> On Thursday, June 2, 2016 at 8:33:06 AM UTC-5, Mike Fikes wrote:
> > Hey Shaun,
> >
> > It has been. It is cljs.spec.impl.gen
> >
> > - Mike
> >
> > > On Jun 2, 2016, at 9:32 AM, Shaun LeBron 
> wrote:
> > >
> > > Great stuff, thanks!  I'm not familiar, but is the `clojure.spec.gen`
> namespace going to be ported?
> > >
> > > On Wednesday, June 1, 2016 at 1:01:58 PM UTC-5, David Nolen wrote:
> > >> ClojureScript, the Clojure compiler that emits JavaScript source code.
> > >>
> > >>
> > >> README and source code: https://github.com/clojure/clojurescript
> > >>
> > >>
> > >> Leiningen dependency information:
> > >>
> > >>
> > >> [org.clojure/clojurescript "1.9.14"]
> > >>
> > >>
> > >> This release includes a complete and faithful port of clojure.spec to
> > >> ClojureScript. The functionality resides in the new cljs.spec
> > >> namespace. All features present in Clojure 1.9.0-alpha4 are
> > >> implemented, including REPL support, testing support and macro
> > >> checking.
> > >>
> > >>
> > >> As always feedback welcome.
> > >>
> > >>
> > >> ## 1.9.14
> > >>
> > >>
> > >> ### Enhancements
> > >> * clojure.spec ported to cljs.spec
> > >>
> > >>
> > >> ### Fixes
> > >> * CLJS-1649: Possible issue with in cljs.reader or
> cljs.core/PersistentHashMap
> > >> * CLJS-1647: Rethrow exception from parallel-build
> > >> * CLJS-1642: cljs.core/reductions does not respect 'reduced'
> > >> * CLJS-1635: Var type implements IEquiv but not IHash
> > >> * CLJS-1629: Fix warning about duplicate test-pr-str
> > >> * CLJS-1637: Missing docstrings for a few vars
> > >
> > > --
> > > Note that posts from new members are moderated - please be patient
> with your first post.
> > > ---
> > > You received this message because you are subscribed to the Google
> Groups "ClojureScript" group.
> > > To unsubscribe from this group and stop receiving emails from it, send
> an email to clojurescript+unsubscr...@googlegroups.com.
> > > To post to this group, send email to clojurescript@googlegroups.com.
> > > Visit this group at https://groups.google.com/group/clojurescript.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.14, clojure.spec port

2016-06-02 Thread David Nolen
No. This only about the convenience of aliasing core common namespaces that
only differ by name between Clojure and ClojureScript.

David

On Thu, Jun 2, 2016 at 12:19 AM, Herwig Hochleitner 
wrote:

> 2016-06-02 4:54 GMT+02:00 David Nolen :
>>
>> We are considering aliasing support for cljs.spec. That is rewriting
>> clojure.spec vars in ClojureScript sources to cljs.spec but it will likely
>> cover more than just cljs.spec - cljs.test, cljs.pprint etc.
>>
>
> Interesting. Is this on the table as a general alternative for supporting
> .cljc in macros?
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.9.14, clojure.spec port

2016-06-01 Thread David Nolen
Choosing cljs.spec over clojure.spec is out of necessity not preference -
Clojure has already taken the namespace and that namespace defines macros.

We are considering aliasing support for cljs.spec. That is rewriting
clojure.spec vars in ClojureScript sources to cljs.spec but it will likely
cover more than just cljs.spec - cljs.test, cljs.pprint etc.

David

On Wed, Jun 1, 2016 at 10:27 PM, Daniel Compton <
daniel.compton.li...@gmail.com> wrote:

> Would it be good to change the namespace for spec from cljs.spec to
> clojure.spec? This will make CLJC files nicer to write as you won’t need to
> have reader conditionals for requiring cljs.spec in CLJS and clojure.spec
> in CLJ.
>
> It seems like spec is going to be used by lots of projects, so the choices
> made now will affect lots of code, and be hard to change later.
>
> More generally, what are the guidelines for deciding if a ClojureScript
> file gets written as cljs.* or clojure.*?
>
> On Thu, Jun 2, 2016 at 9:19 AM Walter van der Laan <
> waltervanderl...@fincite.nl> wrote:
>
>> It's like magic. I added some specs to cljc namespaces and it just works!
>>
>> I'm making domain specific error messages with just a few lines of code.
>> This is a huge leap forward.
>>
>> Thank you, and all involved, so much.
>>
>> --
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "ClojureScript" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojurescript+unsubscr...@googlegroups.com.
>> To post to this group, send email to clojurescript@googlegroups.com.
>> Visit this group at https://groups.google.com/group/clojurescript.
>>
> --
> —
> Daniel
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.9.14, clojure.spec port

2016-06-01 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.14"]

This release includes a complete and faithful port of clojure.spec to
ClojureScript. The functionality resides in the new cljs.spec
namespace. All features present in Clojure 1.9.0-alpha4 are
implemented, including REPL support, testing support and macro
checking.

As always feedback welcome.

## 1.9.14

### Enhancements
* clojure.spec ported to cljs.spec

### Fixes
* CLJS-1649: Possible issue with in cljs.reader or
cljs.core/PersistentHashMap
* CLJS-1647: Rethrow exception from parallel-build
* CLJS-1642: cljs.core/reductions does not respect 'reduced'
* CLJS-1635: Var type implements IEquiv but not IHash
* CLJS-1629: Fix warning about duplicate test-pr-str
* CLJS-1637: Missing docstrings for a few vars

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: ANN: ClojureScript 1.8.51

2016-05-30 Thread David Nolen
I cannot replicate this problem when following the Quick Start instructions
using the latest released uber JAR linked to in the Quick Start.

David

On Mon, May 30, 2016 at 7:34 PM, Peter West  wrote:

> Running the Quick Start, I get the "No 'xpc' param provided to child
> iframe."  error from, I think, start-evaluator in
> cljs.clojure.browser.repl.cljs when I try to get the repl running.  This is
> in both Safari and Chrome.  Any idea what I'm doing wrong?
>
> On Monday, 25 April 2016 21:39:57 UTC+10, David Nolen wrote:
>>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Leiningen dependency information:
>>
>> [org.clojure/clojurescript "1.8.51"]
>>
>> This release updates the Closure Compiler and tools.reader dependencies,
>> fixes a race condition with :parallel-build, improves JS module
>> integration, and includes a number of enhancements and fixes around
>> optional self hosting. A big thanks to everyone who contributed!
>>
>> As always feedback welcome.
>>
>> ## 1.8.51
>>
>> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] defprotocol fails oddly in repl *only*

2016-05-29 Thread David Nolen
On Sun, May 29, 2016 at 11:51 AM, Christopher Genovese <
genovese...@gmail.com> wrote:

> (defprotocol IFoo (foo [this]))


Good catch, this is fixed in master now.

David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: clojure.spec

2016-05-28 Thread David Nolen
clojure.spec has been ported to cljs.spec now available in ClojureScript
master. Will probably cut a release later next week but users are
encouraged to build master and give it a spin.

David

On Mon, May 23, 2016 at 10:12 AM, Rich Hickey  wrote:

> Introducing clojure.spec
>
> I'm happy to introduce today clojure.spec, a new core library and support
> for data and function specifications in Clojure.
>
> Better communication
>
> Clojure is a dynamic language, and thus far we have relied on
> documentation or external libraries to explain the use and behavior of
> functions and libraries. But documentation is difficult to produce, is
> frequently not maintained, cannot be automatically checked and varies
> greatly in quality. Specs are expressive and precise. Including spec in
> Clojure creates a lingua franca with which we can state how our programs
> work and how to use them.
>
> More leverage and power
>
> A key advantage of specifications over documentation is the leverage they
> provide. In particular, specs can be utilized by programs in ways that docs
> cannot. Defining specs takes effort, and spec aims to maximize the return
> you get from making that effort. spec gives you tools for leveraging specs
> in documentation, validation, error reporting, destructuring,
> instrumentation, test-data generation and generative testing.
>
> Improved developer experience
>
> Error messages from macros are a perennial challenge for new (and
> experienced) users of Clojure. specs can be used to conform data in macros
> instead of using a custom parser. And Clojure's macro expansion will
> automatically use specs, when present, to explain errors to users. This
> should result in a greatly improved experience for users when errors occur.
>
> More robust software
>
> Clojure has always been about simplifying the development of robust
> software. In all languages, dynamic or not, tests are essential to quality
> - too many critical properties are not captured by common type systems.
> spec has been designed from the ground up to directly support generative
> testing via test.check https://github.com/clojure/test.check. When you
> use spec you get generative tests for free.
>
> Taken together, I think the features of spec demonstrate the ongoing
> advantages of a powerful dynamic language like Clojure for building robust
> software - superior expressivity, instrumentation-enhanced REPL-driven
> development, sophisticated testing and more flexible systems. I encourage
> you to read the spec rationale and overview  http://clojure.org/about/spec.
> Look for spec's inclusion in the next alpha release of Clojure, within a
> day or so.
>
> Note that spec is still alpha, and some details are likely to change.
> Feedback welcome.
>
> I hope you find spec useful and powerful!
>
> Rich
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to cloj...@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.8.51

2016-04-25 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.8.51"]

This release updates the Closure Compiler and tools.reader dependencies,
fixes a race condition with :parallel-build, improves JS module
integration, and includes a number of enhancements and fixes around
optional self hosting. A big thanks to everyone who contributed!

As always feedback welcome.

## 1.8.51

### Changes
* bump Closure Compiler to v20160315
* bump tools.reader to 1.0.0-beta1
* CLJS-1624: Avoid useage of JSC_HOME in test bash scripts

### Enhancements
* CLJS-1626: cljs.test for bootstrap

### Fixes
* CLJS-1588: defrecord satisfies? behavior under bootstrap
* CLJS-1632: docs / arglist consistency
* CLJS-1612: Resolve ns aliases in syntax-quote
* CLJS-1621: Foreign libs modules of different types don't compile together
* CLJS-1617: inlined `list` evaluation order
* :parallel-build race condition

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Omission on ClojureScript Quick-Start on GH

2016-03-28 Thread David Nolen
You should not need a `:reload` for the first one. Only the second one. If
that's no longer true there has been a regression and you should open a
JIRA ticket.

On Mon, Mar 28, 2016 at 4:30 PM, Alan Thompson  wrote:

> Hi - Anybody here familiar with the CLJS QuickStart on github?   I think
> I've found an omission.  At the part about adding foo:
>
> (defn foo [a b]
>   (+ a b))
>
>
> it is missing the ":reload" in the (require ...).  The missing ":reload"
> results in this at the repl:
>
> cljs.user=> (require '[hello-world.core :as hello] )
> nil
> cljs.user=> (hello/foo 2 3)
> TypeError: Cannot read property 'call' of undefined
> (NO_SOURCE_FILE)
>
>
> The ":reload" is present in the 2nd part for
>
>
> (defn foo [a b]
>   (* a b)) ;; CHANGED
>
>
> I think we need a small update to the README.  Should I submit a PR?
> Alan
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.8.40

2016-03-28 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.8.40"]

This release addresses some minor unintentional interactions with 3rd party
ClojureScript tooling like Figwheel.

As always feedback welcome!

## 1.8.40

### Fixes
* CLJS-1603: Only warn for misspelled comp/REPL opts
* :warning-handlers missing for known compiler options
* CLJS-1592: Self-host: Robustness for core tests

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.8.34

2016-03-19 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.8.34"]

There are many minor fixes in this release around bootstrapped
ClojureScript. This release also fixes a subtle bug with the
new :parallel-build feature.

As always feedback welcome!

## 1.8.34

### Changes
* CLJS-1582: Type-hint extend-type first arg for primitives
* CLJS-1590: split, split-lines differs from Clojure on empty string
* CLJS-1594: NaN and both infinities cannot be elements of a set
* CLJS-1597: Redundant IPrintWithWriter test in pr-writer-impl
* CLJS-1583: (hash (symbol "/")) does not match (hash '/)
* bump tools reader
* CLJS-1492: Warn when using :optimisations instead of :optimizations
* less cryptic error if :main doesn't correspond to any file
* CLJS-744: ISequential types should implement JS indexOf, lastIndexOf
* CLJS-1411: make-array signature differs from clojure

### Fixes
* CLJS-1589: Self-host: case fail with nil
* CLJS-1596: Self-host: :load-macros and :analyze-deps don't work in cljs.js
* CLJS-1420: get-in behavior differs from Clojure by always deferring to
the 3 arity fn
* CLJS-1585: Self-host: Alias-scoped keywords
* CLJS-1577: Self-host: syntax-quote resolves on dot forms
* CLJS-1564: Self-host: cached macro *loaded* update
* CLJS-1584: Self-host: core/str error with condp
* CLJS-1521: Self-host: Macro namespaces cannot be aliased
* CLJS-1573: Self-host: Invalid UTF escaping in cljs-in-cljs
* CLJS-1570: :parallel-build causes invalid truth check in
cljs.reader/read-number
* CLJS-1568: LazyTransformer doesn't implement IMeta
* CLJS-1578: Corrupted Analysis Files Break Compilation
* CLJS-1579: cljs.source-map/invert-reverse-map discards gcol
* CLJS-1580: Self-host: goog.provide offsets source-maps
* CLJS-1569: IndexedSeq doesn't implement IWithMeta / IMeta
* CLJS-1567: make-array macro missing > 2 arg arity
* CLJS-1571: Make special-symbol? true for 'var
* CLJS-1555: make-array macro missing 2 arg arity
* CLJS-970: generate assert message when compiling
* CLJS-1565: Self-host: whitespace optimization is broken
* CLJS-1541: Self-host: Cannot require 'cljs.js using cljs.jar
* CLJS-1550: Enhance docstring for extend-type wrt type-sym
* CLJS-1551: Self-host: assert-args dormant in macros
* CLJS-1552: doc for & should match fn
* CLJS-1488: cljs.repl/source Cannot read source of cljs functions that use
#js reader
* CLJS-1557: Make special-symbol? return true for catch and finally
* CLJS-1542: Self-host: cljs/compile-str not handling errors properly
* CLJS-1318: Fix typo in documentation of `specify`
* CLJS-620: Warnings are generated when using a macro in argument position
* CLJS-1547: Wrong output encoding when compile with goog.LOCALE
* CLJS-1546: cljs.core/run! does not always return nil

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ClojureScript 1.8.34

2016-03-18 Thread David Nolen
Thanks for the report! Will need to think about how to deal with other
tooling possibly including additional options we don't understand - we now
warn on options we don't support to avoid unnecessary confusion.

David

On Fri, Mar 18, 2016 at 7:01 PM, Rangel Spasov  wrote:

> Thanks, David!
>
> I get those warnings when compiling via "lein figwheel":
>
> WARNING: Unknown option ':compiler-env'.
>
> WARNING: Unknown option ':special-fns'.
>
> WARNING: Unknown option ':warn-on-undeclared'.
>
>
> Otherwise, everything seems fine.
>
> Rangel
>
> On Friday, March 18, 2016 at 11:04:46 AM UTC-7, David Nolen wrote:
>>
>> ClojureScript, the Clojure compiler that emits JavaScript source code.
>>
>> README and source code: https://github.com/clojure/clojurescript
>>
>> Leiningen dependency information:
>>
>> [org.clojure/clojurescript "1.8.34"]
>>
>> There are many minor fixes in this release around bootstrapped
>> ClojureScript. This release also fixes a subtle bug with the
>> new :parallel-build feature.
>>
>> As always feedback welcome!
>>
>> ## 1.8.34
>>
>> ### Changes
>> * CLJS-1582: Type-hint extend-type first arg for primitives
>> * CLJS-1590: split, split-lines differs from Clojure on empty string
>> * CLJS-1594: NaN and both infinities cannot be elements of a set
>> * CLJS-1597: Redundant IPrintWithWriter test in pr-writer-impl
>> * CLJS-1583: (hash (symbol "/")) does not match (hash '/)
>> * bump tools reader
>> * CLJS-1492: Warn when using :optimisations instead of :optimizations
>> * less cryptic error if :main doesn't correspond to any file
>> * CLJS-744: ISequential types should implement JS indexOf, lastIndexOf
>> * CLJS-1411: make-array signature differs from clojure
>>
>> ### Fixes
>> * CLJS-1589: Self-host: case fail with nil
>> * CLJS-1596: Self-host: :load-macros and :analyze-deps don't work in
>> cljs.js
>> * CLJS-1420: get-in behavior differs from Clojure by always deferring to
>> the 3 arity fn
>> * CLJS-1585: Self-host: Alias-scoped keywords
>> * CLJS-1577: Self-host: syntax-quote resolves on dot forms
>> * CLJS-1564: Self-host: cached macro *loaded* update
>> * CLJS-1584: Self-host: core/str error with condp
>> * CLJS-1521: Self-host: Macro namespaces cannot be aliased
>> * CLJS-1573: Self-host: Invalid UTF escaping in cljs-in-cljs
>> * CLJS-1570: :parallel-build causes invalid truth check in
>> cljs.reader/read-number
>> * CLJS-1568: LazyTransformer doesn't implement IMeta
>> * CLJS-1578: Corrupted Analysis Files Break Compilation
>> * CLJS-1579: cljs.source-map/invert-reverse-map discards gcol
>> * CLJS-1580: Self-host: goog.provide offsets source-maps
>> * CLJS-1569: IndexedSeq doesn't implement IWithMeta / IMeta
>> * CLJS-1567: make-array macro missing > 2 arg arity
>> * CLJS-1571: Make special-symbol? true for 'var
>> * CLJS-1555: make-array macro missing 2 arg arity
>> * CLJS-970: generate assert message when compiling
>> * CLJS-1565: Self-host: whitespace optimization is broken
>> * CLJS-1541: Self-host: Cannot require 'cljs.js using cljs.jar
>> * CLJS-1550: Enhance docstring for extend-type wrt type-sym
>> * CLJS-1551: Self-host: assert-args dormant in macros
>> * CLJS-1552: doc for & should match fn
>> * CLJS-1488: cljs.repl/source Cannot read source of cljs functions that
>> use #js reader
>> * CLJS-1557: Make special-symbol? return true for catch and finally
>> * CLJS-1542: Self-host: cljs/compile-str not handling errors properly
>> * CLJS-1318: Fix typo in documentation of `specify`
>> * CLJS-620: Warnings are generated when using a macro in argument position
>> * CLJS-1547: Wrong output encoding when compile with goog.LOCALE
>> * CLJS-1546: cljs.core/run! does not always return nil
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to cloj...@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] Clojure Google Summer of Code 2016 - Submit your project ideas!

2016-02-18 Thread David Nolen
Hello,

We're approaching the end of the application period for organisation
participation in Google Summer of Code 2016. This is a fantastic
program that helps grow open source communities and gives students
from around the world the opportunity to get paid to work on open
source over the course of the summer. Clojure has participated four
years in a row now, and many notable projects have benefitted as a
result, including Clojure-in-Clojure, ClojureScript, Typed
Clojure(Script), Clojure/Android, Incanter, and more.

We would love to see Clojure participate again this year. In order to
do so, we need to prepare our application which is due tomorrow. For
our application to be a success, we need widespread involvement from
the community to prepare a strong project ideas page. You can also
review the ideas from the past several years to help you come up with
new ideas.

Please add your project ideas to the page at
http://dev.clojure.org/display/community/Project+Ideas+2016. At this
point, you are not committing to anything we just need your ideas.
If you don't have edit rights to the wiki and don't want to sign up
for an account, just post to the mailing list using [GSoC Idea] in the
subject line, and one of the administrators will add it for you.

Daniel Solano Gomez, Alex Miller, and Ambrose Bonnaire-Sergeant helped
enormously last year, and I will be returning to help this year
as an administrator.

A big thanks to everyone who has participated in previous years as
administrators, mentors, and students. We hope that this will be
another successful Google Summer of Code for Clojure.

Sincerely,
David

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


[ClojureScript] ANN: ClojureScript 1.7.228 - parallel builds!

2016-01-08 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.7.228"]

The primary feature of this release is a new experimental compiler
flag - :parallel-build. If set to true the compiler will leverage
multiple threads to compile ClojureScript sources. Users have reported
signifant gains for cold development and production builds.

This release also includes a variety of small fixes and changes.

As always feedback welcome!

### Enhancements
* New experimental :parallel-build compiler option

### Changes
* CLJS-1538: Type hint some cljs.core predicates
* Docstring typos
* CLJS-1463: (js-debugger) should generate nil-returning expression
* CLJS-1516: better error message when calling macros with arity
* CLJS-1514: Remove Alpha designators on *-watch and ex-*
* clojure.core/require is not thread safe, use locks
* CLJS-1505: Add tests to characterize `type` and `instance?` behavior
* CLJS-1491: Check :source-map is boolean when :optimizations :none
* split sm/encode into 2 functions so JSON generation is optional

### Fixes
* CLJS-1539: Parallel compilation fails on circular dependencies
* CLJS-1425: self-host: cljs.js/eval cb argument inconsistent with docstring
* CLJS-1425: self-host: cljs.js/eval cb argument inconsistent with docstring
* CLJS-1524: Bad hashing for Cons
* CLJS-1487: Fix handling of timestamp comparison for dependencies in JARs
* CLJS-1498: Fix parallel build logging
* CLJS-1477: Do not attempt to resolve "native" type symbols
* CLJS-1236: `constructor` needs to munged if used as namespace segment
* CLJS-1330: self-host: .toString on int needs parens
* CLJS-1512: Self-host: arithmetic form meta missing :numeric
* CLJS-1506: doc for referred fn displays alias ns
* CLJS-1504: Self-host: Pseudo-namespace for macro namespace analysis
metadata
* CLJS-1483: Minor DCE regression with advanced compilation mode

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] Shall I work on macro support on cljs ?

2015-12-24 Thread David Nolen
If you mean you would like to change the ClojureScript macro system - no,
we're not interested in this kind of contribution. The current macro system
is a well considered tradeoff intended to greatly minimize the final
JavaScript payload.

David

On Thu, Dec 24, 2015 at 8:03 AM, Rafik NACCACHE 
wrote:

> Is this something considered by someone else?
>
> Can I start work on it? Is this something figured out for cljs and
> bootstrapped cljs ?
>
> Many thanks,
>
> Rafik
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] How can I get core.async to work in Cljs in Cljs

2015-12-15 Thread David Nolen
There is no more work planned other than bug fixes. It is effectively done.

David

On Tue, Dec 15, 2015 at 1:39 PM, Zubair Quraishi  wrote:

> Ok, makes sense. Is there a roadmap or something for Clojurescript in
> Clojurescript so I can get a better sense of what it will and won't support
> in the future?
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] How can I get core.async to work in Cljs in Cljs

2015-12-15 Thread David Nolen
Nobody at Cognitect is working on this. It's unlikely to be very high
priority either as the payoff for most users is non-existent.

David

On Tue, Dec 15, 2015 at 10:08 AM, Zubair Quraishi  wrote:

> Ok, but how does it work right now. Are you the main contributor for
> core.async for ClojureScript, or is someone at Cognitect working on it as
> well?
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at https://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.


Re: [ClojureScript] google closure modules and the :main compiler option

2015-12-07 Thread David Nolen
Not interested in :main taking a collection of namespaces. The browser REPL
issue is broader, needs more consideration, and even has an existing JIRA
issue.

David

On Mon, Dec 7, 2015 at 6:25 PM, ewen  wrote:

> Would you also consider a patch to make the :main option to accept a
> collection of namespaces? When optimizations are enabled, the closure
> compiler may concatenate multiple namespaces, thus I think this change
> would make sense.
>
> Also, don't you think the browser repl environment should be given the
> possibility to output a main js file at startup? This file could contain a
> call to clojure.browser.repl/connect, making the browser repl simpler to
> start.
>
> --
> Note that posts from new members are moderated - please be patient with
> your first post.
> ---
> You received this message because you are subscribed to the Google Groups
> "ClojureScript" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojurescript+unsubscr...@googlegroups.com.
> To post to this group, send email to clojurescript@googlegroups.com.
> Visit this group at http://groups.google.com/group/clojurescript.
>

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


  1   2   3   4   5   6   7   8   9   10   >