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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9OadZtVKd79G385_%3Dcz9wHn-F7kSj7jMMvtN7DD%3DuS6M20Q%40mail.gmail.com.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9OadEKdDSpjNCyXt3QEcBcndxbu3hzSbEtB9fyvKvk-SiNg%40mail.gmail.com.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9OafQ4BAiGHQC6GxKbroby6s-OJEvazyB3j%2BOPX1QAE6%2BgQ%40mail.gmail.com.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9Oac1zVxxYYbq7Zwd0c5mfh2xTHoog9eWnZey2EZfO48SnA%40mail.gmail.com.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9Oaf115PcQr3ZqGV42oXoPYJxgibt6mEj3PPUsU%2B17z_TNw%40mail.gmail.com.


Re: cljs.test :after fixture not called if test errors

2020-11-25 Thread David Nolen
In the async case just handle the error yourself and fail the test. There's
really not a good way to detect async errors since there isn't one way to.
do async (promises, core.async, etc.).

David

On Wed, Nov 25, 2020 at 1:19 AM Stuart Campbell  wrote:

> That unfortunately doesn't work for async tests, which require the map
> fixture style (with :before/:after keys).
>
> On Tue, 24 Nov 2020 at 21:23, Estevo U. C. Castro 
> wrote:
>
>> Try
>>
>> (use-fixtures :once
>>   (fn [f]
>> (println "before")
>> (try (f)
>>   (finally (println "after")
>>
>> O mércores, 25 de novembro de 2020 á/s 00:17:03 UTC+1,
>> stuart.will...@gmail.com escribiu:
>>
>>> Hello,
>>>
>>> I'm experimenting with fixtures and it seems like :after fixtures aren't
>>> run if a test unexpectedly errors. E.g.:
>>>
>>> (use-fixtures :once {:before #(println "before")
>>>  :after #(println "after")})
>>>
>>> (deftest a-test
>>>   (raise (js/Error. "oops")))
>>>
>>> In this example I expected to see "after" printed somewhere after the
>>> test failed. Is this intentional?
>>>
>>> (I'm writing some tests for an Electron app using Spectron and want to
>>> make sure the app is always shut down after the tests are complete.)
>>>
>>> Regards,
>>> Stuart
>>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@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 a topic in the
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/clojure/N28pFLtNWpo/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> clojure+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/clojure/84dff1cf-6ea0-438c-a4c0-fac097223201n%40googlegroups.com
>> 
>> .
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/CAFuJp1n1Vz8NKf%3DmxakTYn1EXF8UUqTQwc5NiDUKGMOj-BKBsQ%40mail.gmail.com
> 
> .
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9OaetpVoUTexro%3DcJwPghEM8vLeHeHvW8G-3dok_8EfSpug%40mail.gmail.com.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAPC9OaecGyHHJGEjqoDqnfg0zSGJ%2BTRzVPiNBwfaPniNr54aVg%40mail.gmail.com.


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!

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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 

Re: ANN: ClojureScript 1.10.312, Improved Externs Inference & Webpack Guide

2018-06-22 Thread David Nolen
1.10.329 was released today, it addresses a few minor issues in 312
including an externs inference bug.

David

On Fri, Jun 15, 2018 at 10:50 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.10.312"]
>
> This release contains many fixes and enhancements, the most notable being
> those around externs inference. With enhanced externs inference,
> integration with tools like Webpack is greatly improved and we now provide
> an official guide https://clojurescript.org/guides/webpack.
>
> For more details see https://clojurescript.org/news/2018-06-15-release
>
> As always, feedback welcome!
>
> David
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 1.10.312, Improved Externs Inference & Webpack Guide

2018-06-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.10.312"]

This release contains many fixes and enhancements, the most notable being
those around externs inference. With enhanced externs inference,
integration with tools like Webpack is greatly improved and we now provide
an official guide https://clojurescript.org/guides/webpack.

For more details see https://clojurescript.org/news/2018-06-15-release

As always, feedback welcome!

David

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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 

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

2017-10-13 Thread David Nolen
Will need something more minimal. Thanks.

David

On Fri, Oct 13, 2017 at 2:08 PM, Rangel Spasov <raspa...@gmail.com> wrote:

> I'm getting this (I'm guessing related to the changes around CLJS-485
> RegExp flags):
>
> (iOS simulator screenshot attached).
>
>
> As you can see, the RN/JS stack traces are not very useful in this case.
> I can dig deeper if needed to find exactly where it fails (I have a few
> places where I use RegExp).
>
> Thanks all!
> Rangel
>
>
> On Friday, May 12, 2017 at 1:31:54 PM 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.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.
>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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?

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <doubleagen...@gmail.com> 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
>> 

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
* 

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 <dnolen.li...@gmail.com> 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
>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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
>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 / 

Re: The soul of case

2017-06-25 Thread David Nolen
On Sat, Jun 24, 2017 at 1:49 PM, Matching Socks 
wrote:

>
> At any rate, I would like to put in either a documentation issue (if it's
> a feature that ClojureScript's "case" does not work like Clojure's) or else
> a defect issue (if it's a bug).
>

As I stated earlier, we're not going to remove it nor change the existing
behavior in anyway whatsoever. And yes it will get documented.

David

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: The soul of case

2017-06-18 Thread David Nolen
I agree that this behavior diverges from Clojure's and that we probably
should have thought it through a bit more 2 years ago. But at this point
it's probably water under the bridge. Anybody that's actually relying on
this behavior is likely inlining named numeric constants to make jump
tables. The only semantic fuzzy area is if you want to match a symbol and
you have defined a constant with the exact same symbol or referred such a
constant in your namespace. But I suspect this requirement is esoteric
enough that nobody has reported such a problem in actual code in the last 2
years.

I believe I accidentally let it slip through since I don't think I'd ever
used `case` to match symbols myself and at the time I had not internalized
that symbols need not be quoted in this case (yes I know it says so in the
`case` docstring).

It's a strange historical quirk, but I also don't think the situation is
interesting or common enough to be very worked up about :)

David

On Sun, Jun 18, 2017 at 1:26 PM, Herwig Hochleitner 
wrote:

> I was pretty horrified, when this crossed my timeline. Thanks, Phil, for
> starting this thread, because I'd already forgotten about it.
>
> First thing that seems strange, is, that the blog post is from 2015.
> Nevertheless, I just tried it on a nashorn repl:
>
> cljs.user> *clojurescript-version*
> "1.9.562"
> cljs.user> (case 2
>  x :X
>  :no-match)
> :no-match
> cljs.user> (case 'x
>  x :X
>  :no-match)
> :X
> cljs.user> (def ^:const x 2)
> #'cljs.user/x
> cljs.user> (case 2
>  x :X
>  :no-match)
> :X
> cljs.user> (case 'x
>  x :X
>  :no-match)
> :no-match
>
> 2017-06-18 16:37 GMT+02:00 Alex Miller :
>
>> ... that seems wrong.
>>
>
> Yes, yes it does.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <tatu.tarvai...@mac.com>
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 <anti...@gmail.com>
>> 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 clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 clojurescr...@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 clojure@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.


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.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

2017-03-09 Thread David Nolen
This is correct.

On Thu, Mar 9, 2017 at 2:36 AM, Colin Fleming 
wrote:

> I believe that dependency is because Google Closure requires it.
>
> On 9 March 2017 at 16:45, Mike Rodriguez  wrote:
>
>> Guava is often a dependency conflict when trying to put libs together
>> that use it. I'm surprised cljs has dependencies like this. I'd think a
>> language would try to avoid having any deps at all or repackage them or
>> something. For example, Clojure only has ASM.
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@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.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 clojurescr...@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 clojure@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.


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 

Re: spurious clojurescript require exception: Namespace does not exist

2016-12-14 Thread David Nolen
`require` only works if your namespace is in a file that respects Java
classpath conventions. You may have missed this detail in the way all the
Quick Start examples are structured.

HTH,
David

On Sat, Jan 30, 2016 at 12:17 PM, Gregg Reynolds  wrote:

> I'm following the "browser REPL" section in the Clojurescript Quickstart
> .  Everything
> seems hunky-dory; I can connect from the browser and eval code at the
> repl.  But when I change my source and try to require my namespace, I get:
>
> cljs.user=> (require '[test.my-greeting :as t])
> Reading analysis cache for tmp/test/my_greeting.cljs
> java.lang.IllegalArgumentException: Namespace test.my-greeting does not
> exist
>
> Here's the code:
>
> In /browser_repl.cljs:
>
> (require 'cljs.repl)
> (require 'cljs.build.api)
> (require 'cljs.repl.browser)
>
> (cljs.build.api/build "tmp"
>   {:main 'test.my-greeting
>:output-to "dev-resources/public/scripts/main.js"
>:output-dir "dev-resources/public/scripts/cljs"
>:verbose true})
>
> (cljs.repl/repl (cljs.repl.browser/repl-env)
>   :watch "tmp"
>:output-to "dev-resources/public/scripts/main.js"
>   :output-dir "dev-resources/public/scripts/cljs"
>   :verbose true)
>
>
> In /tmp/test/my_greeting.cljs:
>
> (ns test.my-greeting
>(:require [clojure.browser.repl :as repl]))
> (defonce conn
>   (repl/connect "http://localhost:9000/repl;))
> (enable-console-print!)
> (println "HELLO")
>
> I'm stumped.  Help!
>
> Gregg
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: Possible ClojureScript compiler issue...

2016-10-18 Thread David Nolen
This issue is fixed in master now thanks to Thomas Heller. The performance
hit is negligible.

Thank you for the report.

David

On Tue, Oct 18, 2016 at 3:45 PM, John Szakmeister 
wrote:

> On Tue, Oct 18, 2016 at 5:59 AM, Thomas Heller 
> wrote:
> > Don't think there is a best practice for your case in particular.
>
> Okay.  Earlier in the thread you said "while this issue can be very
> confusing you will hardly ever run into it when following best
> practices."  So it seemed to me that perhaps I missing something
> important, or didn't know about a best practice that would have saved
> me.  I think the issue here is a bit different though.  There's
> nothing that would have saved short of knowing that js->clj has this
> issue lurking in the background. :-)
>
> > The issue is that js->cli is built on top of protocols to allow
> converting
> > custom JS types to CLJS types. Which makes it extensible for the price of
> > checking protocols. In your case you are converting JSON which cannot
> have
> > custom types, so a custom converter only checking for the very few
> possible
> > JSON types would "fix" your problem (and would probably be a lot faster).
>
> Yep.  OTOH, I don't really need the performance and js->clj would have
> been just as nice to use, if it worked correctly. :-)
>
> > The case can be made that cljs-ajax should not be using js->clj when
> > converting JSON, maybe even add a json->clj to cljs.core.
>
> I think having json->clj would be a nice option.  Though for
> cljs-ajax, we probably need to roll our own since the api wouldn't be
> available in older ClojureScript versions.
>
> > The sentinel is the "safest" solution but impacts the performance of
> > everyone, so we should be doing more benchmarks on more platforms before
> > deciding anything. Benchmarks and Votes on the Jira Issue would help to
> push
> > this along.
>
> True, but I think the correctness argument here is pretty valuable.
> Again, much of what I see out there is the js->clj is the way to
> convert data, and having this problem lurking seems like setting folks
> up for failure.  I'm pretty persistent when it comes to
> troubleshooting this stuff, but I could see others being awfully
> frustrated by the result.  So I hope that some version of the sentinel
> patch makes it in. :-)
>
> -John
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: Possible ClojureScript compiler issue...

2016-10-16 Thread David Nolen
It's true that there other scenarios where you can encounter this but it
gets reported infrequently enough that I don't think these kinds of
property name collisions are common.

Still it has come up before and I think the simplest solution least likely
to adversely affect performance is to test for a def'onced unique object
instead of `true`.

David

On Sat, Oct 15, 2016 at 8:46 PM, Antonin Hildebrand <
antonin.hildebr...@gmail.com> wrote:

> Unfortunately, this problem is not specific to `js->clj` only.
>
> I believe in general under :advanced optimizations, any object which was
> created or modified by a code which
> was not subject of the same closure compiler optimization pass could
> exhibit similar problems when used with ClojureScript core functions like
> `satisfies?`.
>
> That also includes working with external data (your case), and working
> with objects created/modified by adding properties by string names.
>
> To illustrate, I created a screenshot of cljs type instance with two
> protocols, to see the internals in dev mode:
> https://dl.dropboxusercontent.com/u/559047/cljs-protocol-internals-01.png
> In the selected text I highlighted part of generated code for `satisfies?`
> call.
>
> ClojureScript adds/checks $cljs prefixed properties to objects. These
> internal properties get renamed by closure compiler.
> So any object which happens to have one of those renamed names
> independently added as their property will potentially confuse functions
> like `satisfies?`.
>
> Possible solutions I see:
>
> 1. use string names for clojurescript internal properties, and avoid
> clashes by using "unique-enough" prefix even in advanced mode - still not
> safe solution, but would minimize clash chances
>
> or
>
> 2. start tracking which objects belong to cljs land, have one
> "unique-enough" string name as a marker, clojurescript functions like
> satisfies? would check this marker before proceeding further. Still dirty,
> one could clobber cljs properties by modifying a cljs-land-object from
> unaware Javascript code. And this would probably change behaviour of some
> existing code.
>
> or
>
> 3. use prototypal inheritance and "hide" all ClojureScript internal
> properties in a new link in the prototype chain, plain javascript objects
> would miss this link so it could be easily detected, properties would not
> clash even if they got same names. ClojureScript functions like satisfies?
> would properly
> walk the chain and read properties from proper link which belongs only to
> ClojureScript. Ale we would not need any special "magic" marker - the
> Javascript type of the link in prototype would safely identify it.
> I believe this would be correct solution. But I guess, this would be too
> dramatic change in ClojureScript internals and might break a lot of other
> things I currently don't understand. Also performance could get a hit.
>
> Better ideas, anyone? :-)
>
> ps. don't use :advanced mode when programming atomic reactors in
> ClojureScript ;-p
>
> On Saturday, October 15, 2016 at 10:59:14 PM UTC+2, John Szakmeister wrote:
>
>> On Sat, Oct 15, 2016 at 2:49 PM, David Nolen <dnolen...@gmail.com>
>> wrote:
>> > This issue is somewhat to be expected if you're going to use `js->clj`.
>> This
>> > issue has nothing to do with ClojureScript compiler versions - you just
>> got
>> > lucky before. Google Closure will collapse properties, but some of
>> these
>> > collapsed properties are going to be used to determine protocol
>> membership.
>> > That's it.
>>
>> Wow.  I did not that expect that at all.  It makes sense, but it's
>> unfortunate.
>>
>> > I suggest just avoiding `js->clj` and using your own simple helper for
>> > recursively converting JSON into Clojure values. Changing the
>> (admittedly
>> > questionable) behavior of `js->clj` will only lead to more breakage.
>>
>> I'll definitely look at alternatives.  It'd be nice if js->clj had
>> documentation on this shortcoming though, and perhaps pointers to
>> better alternatives.
>>
>> Thanks for the help David!
>>
>> -John
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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 

Re: Possible ClojureScript compiler issue...

2016-10-15 Thread David Nolen
This issue is somewhat to be expected if you're going to use `js->clj`.
This issue has nothing to do with ClojureScript compiler versions - you
just got lucky before. Google Closure will collapse properties, but some of
these collapsed properties are going to be used to determine protocol
membership. That's it.

I suggest just avoiding `js->clj` and using your own simple helper for
recursively converting JSON into Clojure values. Changing the (admittedly
questionable) behavior of `js->clj` will only lead to more breakage.

HTH,
David

On Sat, Oct 15, 2016 at 11:43 AM, John Szakmeister 
wrote:

> I've been using ClojureScript rather successfully for a year now, but
> ran into an interesting issue recently.
>
> I've discovered that js->clj isn't quite working as expected.  After
> quite a bit of tearing things down and apart, I discovered it was one
> of the keys in some JSON data coming back from the server that looks
> like:
>
> "Bi": 8
>
> And the resultant error would be:
>
> No protocol method IEncodeClojure.-js->clj defined for type
> object: [object Object]
>
> I don't know why this particular sequence caused a problem, but I
> ended trying to vary things a bit just to see what happens.  If I use:
>
> "Bi": 0
>
> I don't see the issue.  Any non-zero value though does seem to bring
> the problem about for this sequence of letters though.  Similarly, I
> tried varying the two letter sequence, and discovered two others with
> similar problems: Ai, and ba.  The latter brought about a different
> error:
>
> [object Object] is not ISeqable
>
> And the pattern with the value needing to be non-zero follows.  If the
> value associated with the key is 0, then I don't see a problem.
>
> As I wasn't seeing this issue before, I backpedaled my version of the
> ClojureScript compiler and eventually found that 1.9.56 didn't seem to
> sufffer from the problem.  After checking out ClojureScript, and
> bisecting more I found that commit
> bcf60ce194e5292fbc5c4b2d89dfc5a7b886b94c is when the behavior changed
> from behaving correctly to behaving badly, but I think it's a false
> positive.
>
> I then created a much smaller test case, with no other libraries
> involved.  This time it's a different set of values that are broken:
>
> * "Ta" with a non-zero value gives: [object Object] is not ISeqable
>
> * "Ub" with a non-zero value gives: No protocol method
> IEmptyableCollection.-empty defined for type object: [object Object]
>
> * "Wb" with a non-zero value gives: No protocol method
> IEncodeClojure.-js->clj defined for type object: [object Object]
>
> If I back up to before the previously mentioned commit, I can still
> cause the problem, though the letter sequences change a bit.
>
> Also, this only appears to happen with advanced optimizations.  With
> no optimizations or with whitespace optimizations, there's no issues.
> So it smells like a strange interaction between the ClojureScript
> runtime and the compiler.
>
> Has anyone seen an issue like this before?  Does anyone have any ideas
> what is going on?  We have these short keys in our data, and it'd be
> pretty painful to make them something else (especially since the names
> are meaningful to those in the know, despite them being cryptic--they
> refer to bit settings on various motors).
>
> I'd be happy to file a ticket, if that's what needs to get done too.
>
> Thanks!
>
> -John
>
> PS Here's the code I used to hunt down problematic keys:
>
> (def alphabet [\a \b \c \d \e \f \g \h \i \j \k \l \m \n \o \p \q \r \s \t
> \u
>\v \w \x \y \z \A \B \C \D \E \F \G \H \I \J \K \L \M \N \O
> \P
>\Q \R \S \T \U \V \W \X \Y \Z])
>
> (enable-console-print!)
>
> (defn ^:export main-page []
>   (println"Starting...")
>   (doseq [c1 alphabet
>   c2 alphabet
>   i  (range 256)]
> (let [s (str "{\"" c1 c2 "\": " i "}")]
>   (try
> ;; (prn :parse-s (js/JSON.parse s))
> ;; (prn :js-clj-parse (js->clj (js/JSON.parse s)))
> (js->clj (js/JSON.parse s))
> (catch js/Error e
>   (println "didn't work" s (str e
>))
>   (println "Done!"))
>
> Then you can observe the results from the JS console.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you 

Re: core.logic with 1.9.0-alpha12

2016-09-13 Thread David Nolen
Oops don't think so. If you have a patch, that would be welcome.

David

On Tue, Sep 13, 2016 at 3:45 AM, 'Burt' via Clojure <
clojure@googlegroups.com> wrote:

> Hi,
>
> with "1.9.0-alpha10" and core.logic "0.8.10":
>
> (ns lwb.nd.rules
>   (:refer-clojure :exclude [==])
>   (:require [clojure.core.logic :refer :all]))
> => nil
>
> with "1.9.0-alpha12" and core.logic "0.8.10":
>
> (ns lwb.nd.rules
>   (:refer-clojure :exclude [==])
>   (:require [clojure.core.logic :refer :all]))
> CompilerException clojure.lang.ExceptionInfo: Call to clojure.core/fn did
> not conform to spec:
> In: [0] val: clojure.core.logic/-inc fails spec:
> :clojure.core.specs/arg-list at: [:args :bs :arity-1 :args] predicate:
> vector?
> In: [0] val: clojure.core.logic/-inc fails spec:
> :clojure.core.specs/args+body at: [:args :bs :arity-n] predicate: (cat
> :args :clojure.core.specs/arg-list :prepost (? map?) :body (* any?))
> :clojure.spec/args  (clojure.core.logic/-inc [] (bind (this) g))
>  #:clojure.spec{:problems ({:path [:args :bs :arity-1 :args], :pred
> vector?, :val clojure.core.logic/-inc, :via [:clojure.core.specs/args+body
> :clojure.core.specs/arg-list :clojure.core.specs/arg-list], :in [0]} {:path
> [:args :bs :arity-n], :pred (cat :args :clojure.core.specs/arg-list
> :prepost (? map?) :body (* any?)), :val clojure.core.logic/-inc, :via
> [:clojure.core.specs/args+body :clojure.core.specs/args+body], :in [0]}),
> :args (clojure.core.logic/-inc [] (bind (this) g))},
> compiling:(clojure/core/logic.clj:1130:5)
>
> Is there already a fix for this?
>
> Kind regards,
> Burt
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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 <dnolen.li...@gmail.com>
> 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
>>
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <dnolen.li...@gmail.com> 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
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

2016-08-13 Thread David Nolen
jc: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.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 fig

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 
* 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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: is there a way to report an argument number in spec?

2016-06-23 Thread David Nolen
clojure.spec already does this by communicating the path where the failure
occurred. Also if you use s/cat you can label the arguments which I think
is probably more friendly and you'll still get the path.

(require '[cljs.spec :as s])
(defn foo [a b c] (+ a b c))
(s/fdef foo
  :args (s/cat :a number? :b number? :c number?))
(s/instrument #'foo)
(foo 1 2 :bar)

;; Error: Call to #'cljs.user/foo did not conform to spec:
;; In: [2] val: :bar fails at: [:args :c] predicate: number?
;; :cljs.spec/args  (1 2 :bar)

On Thu, Jun 23, 2016 at 11:41 AM, Elena Machkasova 
wrote:

> I am trying to use a combination of fdef and instrument in spec, and I was
> wondering if there is a way to apply a condition to each of the :args and
> be able to report the argument number on which the precondition fails. For
> instance, we require all args (in a function with a variable number of
> arguments) to be numbers, and get the message that says that the third
> argument has failed this condition.
>
> Thanks!
>
> Elena
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 clojurescr...@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 clojurescr...@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 clojure@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.


Re: Clojurescript macros evaluate?

2016-06-01 Thread David Nolen
Nothing to do with macros, that wouldn't work in Clojure either, the
problem is only the namespaced keyword - ::tiltontec.qxia.base/m.Composite

Note the leading double colon, ::

The :: indicates that tiltontec.qxia.base is an ns alias, which clearly
it's not since it's the fully qualified name. Just drop the extra : and you
should be good to go.

David

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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 <raspa...@gmail.com> 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 clojure@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.
>

-- 
You re

Re: ClojureScript at its best

2016-03-01 Thread David Nolen
Capital One's Level Money https://www.levelmoney.com
Thomas Reuters https://open.mediaexpress.reuters.com

There's a list of companies that gets periodically updated here:
https://github.com/clojure/clojurescript/wiki/Companies-Using-ClojureScript

David

On Tue, Mar 1, 2016 at 1:10 AM, Alex Miller  wrote:

> A few that come to mind...
>
> https://circleci.com/ is written in ClojureScript and is available at
> https://github.com/circleci/frontend
>
> https://precursorapp.com/ is another CLJS app
>
> https://github.com/jackschaedler/goya is a pixel editor written in CLJS
>
>
> On Monday, February 29, 2016 at 8:54:04 PM UTC-6, Richard Eng wrote:
>>
>> What's a great example of a production ClojureScript web application that
>> showcases ClojureScript's best qualities? I'm looking for something
>> impressive. A URL would be nice. Thanks.
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: No eval in ClojureScript!?

2016-02-13 Thread David Nolen
If you need eval then you need to be OK with pulling in a lot of code and
giving up Closure advanced optimizations and dead code elimination.
Whatever small size savings an interpreter might offer, it would still
suffer from this fundamental problem.

David

On Sat, Feb 13, 2016 at 1:58 PM, ru  wrote:

> I think macros can't be of much help in my task. I am working on project
> rete4frame (https://github.com/rururu/rete4frames) and now want to port
> it to ClojureScript. It is CLIPS-like expert system shell with simplified
> version of RETE algorithm. It has its own language with LISP syntax and it
> is a superset of Clojure/ClojureScript in a sence that it contains inside
> rule descriptions pieces of arbitrary Clojure/ClojureScript code. Work of
> system consists of two phases: Translation and Run. I use "eval" during
> Translation phase in Clojure to get pieces of code "executeble" on Run
> phase. So, I need solution how it can be done in ClojureScript.
>
> -Ru
>
> суббота, 13 февраля 2016 г., 18:25:46 UTC+3 пользователь ru написал:
>>
>> Dear ClojureScript users and team!
>>
>> Without "eval" function ClojureScript can't be recognized as a
>> full-fledged LISP. "Code as data" paradigm can't be implemented without
>> "eval". What purpose of code constructed programmatically, if it can not be
>> evaluated?! In that sence plain old JavaScript is more LISP than
>> ClojureScript. Am I right? May be I have mised something important in that
>> problem?
>>
>> Sincerely,
>>   Ru
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: ClojureScript ord-of-char?

2016-02-09 Thread David Nolen
.charCodeAt is the correct thing - there is no real char type in
ClojureScript only strings.

David

On Tue, Feb 9, 2016 at 1:01 PM, nick rothwell  wrote:

> Dumb question: should I be able to get the ordinal value of a character in
> ClojureScript via something like
>
> (int \A)
>
> ? This does exactly what I'd expect in Clojure. In ClojureScript it seems
> to compile to
>
> "A" | 0
>
> which evaluates to 0.
>
> (I'm now doing (.charCodeAt \A) which works fine.)
>
> [org.clojure/clojurescript "1.7.228"]
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


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

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: In core.match, what's the difference between predicates (:when) and guards (:guard)?

2015-12-08 Thread David Nolen
core.match will attempt to optimize matching :when clauses in the decision
tree.

David

On Tue, Dec 8, 2015 at 4:18 PM, retnuH  wrote:

> I can't really figure out what the deal is with predicates.  They're not
> mentioned in the Basic/Advanced usage wiki pages at all.  The code for
> Guards and Predicates is basically identical.
>
> The only difference that I've been able to find (beyond the spelling,
> obviously):
>
> - predicates can only be symbols, i.e. they can't be function declarations
> (#() or (fn))
>
> - predicates have to be pre-declared with defpred
>
> Am I missing something?  Is there some use case that predicates fill that
> guards don't?
>
> Cheers,
>
> H
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: Any chance of core.logic getting extended with probKanren?

2015-11-25 Thread David Nolen
The rationale is simply that Prolog-like systems have embraced it as it
appears to be a very natural fit - https://dtai.cs.kuleuven.be/problog/

David

On Wed, Nov 25, 2015 at 9:20 AM, Dragan Djuric  wrote:

> I know well how probabilistic logic works. It is a superset of the
> true/false logic, and goes much beyond "half true" etc. My question was
> about how this would look like when integrated with core.logic vs just
> using full-blown probabilistic logic-based library/language.
>
> On Wednesday, November 25, 2015 at 3:15:11 PM UTC+1, Carl Cotner wrote:
>>
>> > Although some key building blocks are the same (MCMC), I really cannot
>> see
>> > how such things could be integrated to core.logic, and even why.
>>
>> This is not a concrete answer to your question, but probability can be
>> thought of as a continuous extension of logic where 0 = False and 1 =
>> True (and .5 = "half true", etc.).
>>
>> This extension is unique given a few natural conditions.
>>
>> Carl
>>
>>
>> On Wed, Nov 25, 2015 at 5:49 AM, Dragan Djuric 
>> wrote:
>> > I am working on something related to probabilistic
>> > programming/inference/learning. Not yet ready for use but I hope to get
>> it
>> > there the next year.
>> > Although some key building blocks are the same (MCMC), I really cannot
>> see
>> > how such things could be integrated to core.logic, and even why. So, I
>> would
>> > like very much to hear some of the needed use cases for this (without
>> > reading hundreds of pages of someone's PhD dissertation, please :)
>> >
>> > Can you write a few "hello world" examples of what you would like to
>> see in
>> > core.logic related to probabilistic programming?
>> >
>> >
>> > On Friday, November 20, 2015 at 2:51:05 PM UTC+1, Henrik Larsson wrote:
>> >>
>> >> I have started to play around with ProbLog2 and find the concept of
>> >> probabilistic logic programming to be super fun. When googeling
>> miniKanren
>> >> and probabilistic logic programming the following came up:
>> >> https://github.com/webyrd/probKanren
>> >>
>> >> So my question now is what are the chances that something like
>> probKanren
>> >> getting implemented in core.logic and how advance is probKanren vs
>> ProbLog2?
>> >> What im after is the conditional probabilites that ProbLog2 can
>> handle.
>> >>
>> >> There are some documentation on core.logic
>> >> (https://github.com/clojure/core.logic/wiki/CLP(Prob)) but it is
>> dated at
>> >> 2013 and im not sure what the roadmap is for core.logic or if it even
>> has a
>> >> roadmap.
>> >>
>> >>
>> >> Thanks for any input regarding this.
>> >>
>> >> Best regards Henrik
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Clojure" group.
>> > To post to this group, send email to clo...@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+u...@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+u...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: Any chance of core.logic getting extended with probKanren?

2015-11-20 Thread David Nolen
Definitely interested in it! But I don't have time to work on it myself. So
the likelihood of this feature landing is entirely dependent on
contributions :)

HTH,
David

On Fri, Nov 20, 2015 at 7:01 AM, Henrik Larsson 
wrote:

> I have started to play around with ProbLog2 and find the concept of
> probabilistic logic programming to be super fun. When googeling miniKanren
> and probabilistic logic programming the following came up:
> https://github.com/webyrd/probKanren
>
> So my question now is what are the chances that something like probKanren
> getting implemented in core.logic and how advance is probKanren vs
> ProbLog2? What im after is the conditional probabilites that ProbLog2 can
> handle.
>
> There are some documentation on core.logic (
> https://github.com/clojure/core.logic/wiki/CLP(Prob)) but it is dated at
> 2013 and im not sure what the roadmap is for core.logic or if it even has a
> roadmap.
>
>
> Thanks for any input regarding this.
>
> Best regards Henrik
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@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.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 1.7.170, Enhanced Build Pipeline

2015-11-06 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.170"]

This release includes a major refactor of the build pipeline thanks to
Juho Teperi. This change along with some greatly simplified
recompilation logic will mean much faster cold build times for larger
projects (some users have already reported >10X).

This is a breaking change for existing tooling. You will need to
upgrade lein-cljsbuild, lein-figwheel, and boot-cljs if you intend to
adopt this version of ClojureScript. All the mentioned tools have
already accounted for this change. Refer to the appropriate
documentation for your tooling to determine which version number you
should adopt.

Other interesting changes and fixes include newer Google Closure
Compiler and Library dependencies, self hosting tweaks, a Google
Closure modules (:modules compiler option) regression,
improved warnings, and minor REPL enhancements.

As always feedback welcome!

### Enhancements
* Refactor build pipeline
* CLJS-1478: Self-host: Allow static-fns opt

### Changes
* Generate larger range of random UUIDs
* make browser REPL file reloads less chatty
* CLJS-1475: indicate that cljs.reader/read is safe
* CLJS-1470: Bump GCL Dependency
* bump Google Closure dep

### Fixes
* in system-time check that js/process.hrtime is actually a thing
* CLJS-1228: cljs.util/topo-sort is polynomial on larger dependency graphs
* check that performance.now method actually exists
* CLJS-1476: Self-host: Protocol prefixing broken for three- (or more)
segment namespaces
* CLJS-1472 Patch for CLJS-1467 causes regression for nodejscli
* CLJS-1469 :modules regression
* CLJS-1445: Syntax error for var args in protocol methods
* Warn if protocol impl methods do not match its protocol
* CLJS-1451 Protocol impl do not support qualified method names
* CLJS-1422: cljs.js/eval-str fails for ns form on node.js with simple
optimizations
* CLJS-1423: self-host: Requiring analyzer/compiler breaks unchecked Boolean
* CLJS-1466: Improperly munged output path for GClosure JavaScript
* CLJS-1467: Foreign Libraries not included when using :main with :simple
or :advanced

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 1.7.145

2015-10-13 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.145"]

This release updates the Google Closure Compiler dependency and
includes many small enhancements and fixes.

As always feedback welcome!

## 1.7.145

### Enhancements
* CLJS-1455: high resoluting timing where available
* CLJS-1403: Add updated Windows shell scripts
* CLJS-1017: support :main for :advanced and :simple builds
* CLJS-1409: allow basic type checking of protocols
* CLJS-1404: var resolution for @param and @return
* CLJS-1395: Node.js REPL debug port support

### Changes
* CLJS-1464: docstrings for transducer arities
* Latest Google Closure Compiler dependency
* Node.js REPL sets *target*
* add cljs.analyzer.api/get-js-index
* add goog.object to list of implicit namespaces
* CLJS-1393: turn *target* into goog-define

### Fixes
* UUID hashing
* CLJS-1465: fix *main-cli-fn* doc
* CLJS-1456: bad require forms at REPL can corrupt REPL session
* CLJS-1449: self host :require-macros bug
* CLJS-1462: self host regression
* Add header bits for Node.js under :none
* CLJS-1457: unicode symbol munging
* CLJS-1442: self host, docstring typos
* CLJS-1441: portable clojure.string
* CLJS-1436: self-host, dep ns not loaded
* CLJS-1440: self-host, eval support in Web Workers
* CLJS-1400: self-host, doseq broken
* CLJS-1435: self-host, bad lexical scope
* CLJS-1434: clojure.walk no longer preseves meta
* CLJS-1432: '$ and '. symbol collision under advanced
* CLJS-1304: c.string/replace differs from Clojure
* CLJS-1430: bad code gen for self host .toString method calls
* CLJS-1353: range inconsistent with Clojure
* CLJS-1431: load-file doc output missing arglists
* CLJS-1433: cljs.js/*eval-fn* passed nil :cache
* CLJS-1299: add more support for literals to cljs.reader
* CLJS-1417: cljs.js require macros failures
* CLJS-1416: cljs.util/last-modified leaks files
* CLJS-1481: self host defprotocol regression
* CLJS-1414: only munge @param & @return if type checking
* CLJS-1401: unify runtime & compile UUID hashing
* CLJS-1395: no trailing semicolons after JS comment
* CLJS-1394: reify gensyms can clash

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 1.7.145

2015-10-13 Thread David Nolen
It's an innocuous warning from badly annotated code from the Google Closure
Library. Annoying but not important.

We'll probably cut a followup release with a bumped GCL dependency once
it's clear there are not more pressing problems.

David

On Tue, Oct 13, 2015 at 3:58 PM, Nathan B <nate...@gmail.com> wrote:

> On Tuesday, October 13, 2015 at 8:02:07 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.7.145"]
> >
> >
> > This release updates the Google Closure Compiler dependency and
> > includes many small enhancements and fixes.
> >
> >
> > As always feedback welcome!
> >
> >
> > ## 1.7.145
> >
> >
> > ### Enhancements
> > * CLJS-1455: high resoluting timing where available
> > * CLJS-1403: Add updated Windows shell scripts
> > * CLJS-1017: support :main for :advanced and :simple builds
> > * CLJS-1409: allow basic type checking of protocols
> > * CLJS-1404: var resolution for @param and @return
> > * CLJS-1395: Node.js REPL debug port support
> >
> >
> > ### Changes
> > * CLJS-1464: docstrings for transducer arities
> > * Latest Google Closure Compiler dependency
> > * Node.js REPL sets *target*
> > * add cljs.analyzer.api/get-js-index
> > * add goog.object to list of implicit namespaces
> > * CLJS-1393: turn *target* into goog-define
> >
> >
> > ### Fixes
> > * UUID hashing
> > * CLJS-1465: fix *main-cli-fn* doc
> > * CLJS-1456: bad require forms at REPL can corrupt REPL session
> > * CLJS-1449: self host :require-macros bug
> > * CLJS-1462: self host regression
> > * Add header bits for Node.js under :none
> > * CLJS-1457: unicode symbol munging
> > * CLJS-1442: self host, docstring typos
> > * CLJS-1441: portable clojure.string
> > * CLJS-1436: self-host, dep ns not loaded
> > * CLJS-1440: self-host, eval support in Web Workers
> > * CLJS-1400: self-host, doseq broken
> > * CLJS-1435: self-host, bad lexical scope
> > * CLJS-1434: clojure.walk no longer preseves meta
> > * CLJS-1432: '$ and '. symbol collision under advanced
> > * CLJS-1304: c.string/replace differs from Clojure
> > * CLJS-1430: bad code gen for self host .toString method calls
> > * CLJS-1353: range inconsistent with Clojure
> > * CLJS-1431: load-file doc output missing arglists
> > * CLJS-1433: cljs.js/*eval-fn* passed nil :cache
> > * CLJS-1299: add more support for literals to cljs.reader
> > * CLJS-1417: cljs.js require macros failures
> > * CLJS-1416: cljs.util/last-modified leaks files
> > * CLJS-1481: self host defprotocol regression
> > * CLJS-1414: only munge @param & @return if type checking
> > * CLJS-1401: unify runtime & compile UUID hashing
> > * CLJS-1395: no trailing semicolons after JS comment
> > * CLJS-1394: reify gensyms can clash
>
> When I compile in advanced mode, I am getting the following warning:
>
> WARNING - Parse error. unknown @suppress parameter:
> checkStructDictInheritance
> >>  * @suppress {checkStructDictInheritance}
>
> --
> 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 clojurescr...@googlegroups.com.
> Visit this group at http://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 clojure@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.


Re: ANN: ClojureScript 1.7.28 - Optional Self Hosting

2015-08-07 Thread David Nolen
No. ClojureScript's macro system isn't going to change.

See
https://github.com/clojure/clojurescript/wiki/Bootstrapped-ClojureScript-FAQ
.

David

On Thu, Aug 6, 2015 at 11:27 PM, Matthew Molloy wham...@gmail.com wrote:

 Hi David,

 Are macros supported directly within clojurescript then?  I'm having some
 trouble compiling a macro via defmacro.

 Matt

 On Saturday, August 1, 2015 at 1:52:23 AM UTC+8, 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.7.28]
 
 
  ClojureScript now has a proper version number. This version number is
  designed to reflect feature parity with Clojure.
 
 
  The primary new feature of this release is optional
  self hosting. ClojureScript can now run either on the JVM or directly on
  JavaScript. Please refer to the docstrings in the new cljs.js
  namespace for details on this functionality. cljs.js is designed to
  enable new use cases (iOS, Android, interactive tutorials, snippet
  sharing) not well served by the default compilation model.
 
 
  The release also includes numerous bug fixes and enhancements.
 
 
  This release also bumps the Clojure dependency to 1.7.0 and
  tools.reader to 0.10.0-alpha3.
 
 
  As always feedback welcome!
 
 
  ## 1.7.28
 
 
  ## Enhancements
  * New namespace cljs.js provides analysis, compilation, and eval
  * CLJS-1360: Refactor JS module processing to work with recent Google
 Closure compiler changes
  * CLJS-1282: Add a :pprint option to the default reporter in cljs.test
  * CLJS-1308: :analyze-path should be extended to take a vector of paths
  * CLJS-1230: ES 2015 Module Processing
  * CLJS-1231: AMD Module Processing
  * CLJS-1092: CommonJS Module processing
 
 
  ## Changes
  * CLJS-1376: Printing in a tagged literal data form
  * CLJS-836: Replace seq-based iterators with direct iterator for all
 non-seq collections that use SeqIterator
  * CLJS-1367: Expose default-warning-handler and warning-enabled?
  * CLJS-1267: Added the :end-test-all-vars and :end-test-vars events to
 have end events for all cljs.test api functions
  * CLJS-1337: Move parse ns side-effects into a separate compiler pass
  * CLJS-1247: Split out error printing from regular printing
  * CLJS-1329: Support for reading #js tagged literals in bootstrap
  * CLJS-1191: rebased patch Update clojure.walk to the current version on
 clojure
  * CLJS-1321: remove getNamespace  getName method calls from defrecord
  * CLJS-1281: Preserve test order
  * CLJS-934: In the REPL return vars after defs
 
 
  ## Fixes
  * CLJS-1316 let does not detect invalid binding vector when it contains
 destructuring
  * CLJS-1033: take a drop accept nil as n argument
  * CLJS-1324: Compiler fails to raise warning/error when invoking a
 keyword without arguments
  * CLJS-1352: cljs.js: Allow conditional readers
  * CLJS-1348: meta is printing for def at REPL
  * CLJS-1342: cljs.reader/read-string should throw Error when not called
 with string
  * CLJS-1341: Fix CommonJS conversion bug
  * CLJS-1333: Analyze meta on quoted symbols
  * CLJS-1210: Javascript built-in arguments replaces nil arguments
 locally defined by let
  * CLJS-1248: alter-meta! does not work on vars
  * CLJS-1276: var equality differs from Clojure
  * CLJS-1310: ns libspec error message misses :import
  * CLJS-428: Added step to escape docstrings with */ and associated test
  * CLJS-1331: Regex literal emits invalid JS
  * CLJS-1338: NPE in confirm-var-exists if suffix is ..
  * CLJS-1319: Cannot locate module namespace when filename contains dash
  * CLJS-1317: Incremental compilation issues for :nodejs target
  * CLJS-1227 Raise error when if form has more than 4 statements
  * CLJS-1306: Browser REPL :asset-path with leading slash breaks source
 map support
  * CLJS-1290: :refer does not work with Closure JS namespaces
  * CLJS-1307: Doc for ns missing
  * CLJS-1301: local :foreign-libs are not picked up the first time
 browser REPL is started

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members

ANN: ClojureScript 1.7.48

2015-08-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.7.48]

This release updates the Google Closure Compiler and Library
dependencies to the latest. It also addresses a REPL regression, adds
a goog-define helper macro for goog.define interop, and includes
various other small fixes, changes and enhancements.

As always feedback welcome!

## 1.7.48

## Enhancements
* provide goog-define macro to support proper use of goog.define
* CLJS-1177: A compiler support for non-Closure transforms (JSX, etc)
* CLJS-1296: browser REPL should queue prints before connection then flush
after connection
* add :dump-core compiler option for cljs.js config
* CLJS-1386: Symbols should be added to the constants table

## Changes
* Bump Closure Compiler dependency
* Bump Closure Library dependency

## Fixes
* CLJS-1392: cljs.repl/source regression
* CLJS-1391: Error when building for target :nodejs
* CLJS-1388: Stacktrace element handling for :output-dir w/o
file/line/column
* CLJS-1311: Improve error reporting when converting JavaScript modules
* CLJS-1387: support local Closure libs that conform to classpath

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 1.7.28 - Optional Self Hosting

2015-07-31 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.28]

ClojureScript now has a proper version number. This version number is
designed to reflect feature parity with Clojure.

The primary new feature of this release is optional
self hosting. ClojureScript can now run either on the JVM or directly on
JavaScript. Please refer to the docstrings in the new cljs.js
namespace for details on this functionality. cljs.js is designed to
enable new use cases (iOS, Android, interactive tutorials, snippet
sharing) not well served by the default compilation model.

The release also includes numerous bug fixes and enhancements.

This release also bumps the Clojure dependency to 1.7.0 and
tools.reader to 0.10.0-alpha3.

As always feedback welcome!

## 1.7.28

## Enhancements
* New namespace cljs.js provides analysis, compilation, and eval
* CLJS-1360: Refactor JS module processing to work with recent Google
Closure compiler changes
* CLJS-1282: Add a :pprint option to the default reporter in cljs.test
* CLJS-1308: :analyze-path should be extended to take a vector of paths
* CLJS-1230: ES 2015 Module Processing
* CLJS-1231: AMD Module Processing
* CLJS-1092: CommonJS Module processing

## Changes
* CLJS-1376: Printing in a tagged literal data form
* CLJS-836: Replace seq-based iterators with direct iterator for all
non-seq collections that use SeqIterator
* CLJS-1367: Expose default-warning-handler and warning-enabled?
* CLJS-1267: Added the :end-test-all-vars and :end-test-vars events to have
end events for all cljs.test api functions
* CLJS-1337: Move parse ns side-effects into a separate compiler pass
* CLJS-1247: Split out error printing from regular printing
* CLJS-1329: Support for reading #js tagged literals in bootstrap
* CLJS-1191: rebased patch Update clojure.walk to the current version on
clojure
* CLJS-1321: remove getNamespace  getName method calls from defrecord
* CLJS-1281: Preserve test order
* CLJS-934: In the REPL return vars after defs

## Fixes
* CLJS-1316 let does not detect invalid binding vector when it contains
destructuring
* CLJS-1033: take a drop accept nil as n argument
* CLJS-1324: Compiler fails to raise warning/error when invoking a keyword
without arguments
* CLJS-1352: cljs.js: Allow conditional readers
* CLJS-1348: meta is printing for def at REPL
* CLJS-1342: cljs.reader/read-string should throw Error when not called
with string
* CLJS-1341: Fix CommonJS conversion bug
* CLJS-1333: Analyze meta on quoted symbols
* CLJS-1210: Javascript built-in arguments replaces nil arguments locally
defined by let
* CLJS-1248: alter-meta! does not work on vars
* CLJS-1276: var equality differs from Clojure
* CLJS-1310: ns libspec error message misses :import
* CLJS-428: Added step to escape docstrings with */ and associated test
* CLJS-1331: Regex literal emits invalid JS
* CLJS-1338: NPE in confirm-var-exists if suffix is ..
* CLJS-1319: Cannot locate module namespace when filename contains dash
* CLJS-1317: Incremental compilation issues for :nodejs target
* CLJS-1227 Raise error when if form has more than 4 statements
* CLJS-1306: Browser REPL :asset-path with leading slash breaks source map
support
* CLJS-1290: :refer does not work with Closure JS namespaces
* CLJS-1307: Doc for ns missing
* CLJS-1301: local :foreign-libs are not picked up the first time browser
REPL is started

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ClojureScript Self-hosting Demo

2015-07-31 Thread David Nolen
Some more words  demos here
http://swannodette.github.io/2015/07/29/clojurescript-17/

Cheers,
David

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: clojure.core.match: AssertionError: Pattern row reuses wildcards

2015-07-01 Thread David Nolen
Just isn't supported. Patch welcome :)

David

On Wed, Jul 1, 2015 at 3:46 PM, Alan Thompson clooj...@gmail.com wrote:

 Hi - I am trying to write some unit tests for Datomic using core.match to
 keep things succinct.  I was hoping to use a match pattern like this:

 [ {:e tx-eid  :a :db/txInstant:v _  :tx tx-eid
 :added true}
   {:e _   :a :community/category  :v free stuff   :tx tx-eid
 :added false} ]

 to show that the transaction EID (tx-eid) shows up in 3 places in the
 datoms result of a transaction.  However, I am getting the error:

 Exception in thread main java.lang.AssertionError: Pattern row 1:
 Pattern row reuses wildcards in [[{:e tx-eid, :a :db/txInstant, :v _, :tx
 tx-eid, :added true} {:e _, :a :community/category, :v free stuff, :tx
 tx-eid, :added false}]].  The following wildcards are ambiguous: tx-eid.
 There's no guarantee that the matched values will be same.  Rename the
 occurrences uniquely.,


 So I am apparently unable to use core.match in the way I was hoping.  Are
 there any workarounds to this problem?

 Thanks,
 Alan

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: Running test.check and cljs.test tests under Clojurescript

2015-06-30 Thread David Nolen
http://annapawlicka.com/travis-ci-and-clojurescript-tests/ is probably
a more relevant basic guide.

On Tuesday, June 30, 2015, Nathan Marz nat...@nathanmarz.com wrote:

 I'm trying to get Specter's tests running under ClojureScript. I can run
 the tests manually in a REPL just fine, but I cannot figure out a
 straightforward way to run all the tests like you can in Clojure with lein
 test.

 Here are the tests I'm trying to run, which are a mix of tests defined
 using test.check and cljs.test:
 https://github.com/nathanmarz/specter/blob/cljs/test/com/rpl/specter/core_test.cljc

 I've tried the instructions in
 http://abratukhin.blogspot.com/2015/03/how-to-set-up-unit-tests-in.html
 but the cemerick.cljs.test package does not seem to run test.check tests
 defined with defspec.

 How can I set up a runner to run my tests with a one line command at the
 terminal?


  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 javascript:_e(%7B%7D,'cvml','clojure@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
 javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@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
 javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 0.0-3308, fixes enhancements

2015-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 0.0-3308]

This release bumps the Clojure dependecy to 1.7.0-RC1 and includes fixes
and minor
enhancements.

As always feedback welcome!

## 0.0-3308

## Changes
* Clojure 1.7.0-RC1 dependency
* CLJS-1292: Add IPrintWithWriter implementation for TaggedLiteral
* add cljs.core/random-uuid
* flush immediately when forwarding Node process out  err
* CLJS-1256 cache UUID hash value
* CLJS-1226: Added the :end-run-test event to cljs.test and a dummy event
handler for it

## Fixes
* CLJS-1200: compare behaves differently from Clojure
* CLJS-1293: Warning settings not conveyed via REPL
* CLJS-1291: pprint whitespace/letter checks are incomplete
* CLJS-1288: compiler doesn't emit goog.require for foreign library when
optimization level is not set
* check that we actually read something in cjls.repl.server/read-request
* clarify cljs.test/run-tests docstring
* CLJS-1285: load-file regression
* CLJS-1284: IndexedSeq -seq implementation incorrect for i = alength of
internal array
* finish CLJS-1176, remove stray .isAlive method call
* add zero arity `newline` to match Clojure
* CLJS-1206: Images in HTML don't show up when served from localhost:9000
* CLJS-1272: :include-macros description inaccurate in require
* CLJS-1275: Corrected :test-paths in project.clj
* CLJS-1270: Docstring for delay not printed by cljs.repl/doc
* CLJS-1268: cljc support for cljs.closure/compile-file
* CLJS-1269: realized? docstring refers to promise and future
* match Clojure behavior for get on string / array. Need to coerce key into
int.
* CLJS-1263: :libs regression, can no longer specify specific files
* CLJS-1209: Reduce produces additional final nil when used w/ eduction
* CLJS-1261: source fn fails for fns with conditional code

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


cljs.test usage

2015-05-21 Thread David Nolen
People have been asking about cljs.test usage for a while now. I've finally
written up some notes https://github.com/clojure/clojurescript/wiki/Testing.

Feel free to edit for clarity / typos etc.

David

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: Why does the following Clojure code take 10x the time the C# version does? How to improve the Clojure version?

2015-05-14 Thread David Nolen
Also using `lein run` without supplying correct JVM settings (like -server)
is going to lead to pretty misleading results.

On Thu, May 14, 2015 at 3:44 PM, Alex Miller a...@puredanger.com wrote:

 The major problem here is that you are using boxed math for everything
 instead of primitives.

 0) Switch to Clojure 1.7.0-beta3 - it's faster and some things below are
 dependent on it for best performance. And use Java 1.8.
 1) Parse the lines you're reading directly into longs (Clojure focuses on
 64-bit primitives - longs and doubles)
 2) Put the longs first into a data structure that preserves the primitive
 type. The two best options for that here are records (which can have
 primitive fields) and arrays. I would create a Canvas defrecord with ^long
 width and height and a Paper defrecord with all ^long fields for example.
 3) Store the papers in a vector (using transient to create it)
 4) I suspect visible-color and covered? could probably be tightened up
 into a reduce over papers or a single loop-recur over papers - can't say I
 totally get what's happening there.
 5) In visible-color-frequencies, you could use update instead of get +
 transient assoc! on the acc map, but this is never going to be terribly
 fast. Another option here would be to create an array with the max color
 (you could track that while reading if it's not a well-known answer) and
 bash the array. That can retain int or long counters and will be *way*
 faster.
 6) You can use (set! *unchecked-math* :warn-on-boxed) to get faster math
 (no overflow checks) and also issue warnings (added in 1.7) if you happened
 to use boxed math by accident.



 On Thursday, May 14, 2015 at 3:02:42 AM UTC-5, Amith George wrote:

 I wrote the following code to solve this challenge -
 https://www.reddit.com/r/dailyprogrammer/comments/35s2ds/20150513_challenge_214_intermediate_pile_of_paper/
 .

 Code -
 https://github.com/amithgeorge/reddit-dailyprogrammer-clojure/blob/56ce1dbb6a08e96150dc85934caecfeb68108a53/src/rdp/214_intermediate.clj

 I executed the -main function using `lein run 1`.

 Output

 ;; lein run 1

 0 12605919
 1 3578145
 2 15356894
 3 19134293
 4 2394558
 5 15030409
 6 6424953
 7 14893444
 8 1592254
 9 1914025
 10 7075106
 Elapsed time: 501168.972435 msecs

 The code originally used an immutable hashmap, but I lost patience
 waiting for the computation to end. With mutable hashmap, it still takes
 around 8 mins.

 I wrote a C# version of the above code -
 https://gist.github.com/amithgeorge/766b8220f39d48221e58. It finishes
 under 40secs. The C# exe was built under Release mode and executed directly
 from the commandline. I expected the Clojure version to perform similarly.

 Any tips on what I am doing wrong?

 -
 Explanation of the code - Create a vector of all paper sheets, such that
 the sheet placed last is the first element of the vector and the last
 element is the canvas. To compute the frequency of each visible color - for
 each point in the canvas find the first sheet in the vector that covers the
 point. Store/increment its count in the hashmap. I understand there might
 be better more efficient ways to solve this, but currently I am interested
 in why the Clojure versions is so slow vis-a-vis the C# version.

  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-11 Thread David Nolen
Enhancing :libs support was pretty finicky work so I'm not particularly
surprised by the regression. Looking into it. In the meantime you don't
need specify each library, `:libs [lib]` should suffice.

David

On Mon, May 11, 2015 at 1:10 AM, Ruslan Prokopchuk fer.ob...@gmail.com
wrote:

 With 3269 I have the following error:

 java.lang.IllegalArgumentException:
 /home/ul/Projects/project1/lib/transformflatgeom.js is not a relative path
  at clojure.java.io$as_relative_path.invoke (io.clj:405)

 config is:

 :compiler {
 :output-to  resources/public/js/dev.js
 :output-dir resources/public/js/dev
 :source-map resources/public/js/dev.js.map
 :libs   [lib/simplegeometry.js lib/transformflatgeom.js
  lib/scaleinteraction.js lib/translateinteraction.js]
 :cache-analysis true
 :optimizations  :none
 :pretty-print   true}

 --
 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 clojurescr...@googlegroups.com.
 Visit this group at http://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 clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-11 Thread David Nolen
As I said above, you must specify Clojure 1.7.0-beta2 as your Clojure
dependency.

On Mon, May 11, 2015 at 3:59 AM, Max Gonzih gon...@gmail.com wrote:

 On Sunday, May 10, 2015 at 11:24:54 PM UTC+2, Dmitri Sotnikov wrote:
  Is there possibly anything else missing in the package, figwheel doesn't
 appear to find the repl ns.
 
 
 
 
 
  lein figwheel
  Retrieving org/clojure/clojurescript/0.0-3269/clojurescript-0.0-3269.pom
 from central
  Retrieving org/clojure/clojurescript/0.0-3269/clojurescript-0.0-3269.jar
 from central
  Exception in thread main java.io.FileNotFoundException: Could not
 locate cljs/repl__init.class or cljs/repl.clj on classpath: ,
 compiling:(figwheel_sidecar/repl.clj:1:1)
 
 
  On Sunday, May 10, 2015 at 10:20:13 AM UTC-4, David Nolen wrote:
  Just cut 0.0-3269 which adds the missing analysis and source map bits
 back into the artifacts. It also cleans up :libs support and fixes a
 related regression with Closure compatible libraries that follow classpath
 conventions (like transit-js). Both :libs Closure libraries and classpath
 aware Closure compatible libraries now enjoy REPL support.
 
 
  David
 
 
  On Sun, May 10, 2015 at 9:41 AM, David Nolen dnolen...@gmail.com
 wrote:
 
  It appears there are still some important bits missing from the
 artifacts. Working through the issues and will cut a release soon.
 
 
  David
 
 
 
 
  On Sun, May 10, 2015 at 12:22 AM, Rangel Spasov rasp...@gmail.com
 wrote:
 
  Hey guys,
 
 
  0.0-3264 fails for me with:
 
 
 
 
 
 
 
 
 
 
 
  clojure.lang.ExceptionInfo: failed compiling
 file:resources/public/js/compiled/out/cljs/core.cljs
 
   at clojure.core$ex_info.invoke (core.clj:4591)
 
  Caused by: java.lang.IllegalArgumentException: No implementation of
 method: :make-reader of protocol: #'clojure.java.io/IOFactory found for
 class: nil
 
   at clojure.core$_cache_protocol_fn.invoke (core_deftype.clj:554)
 
  0.0-3255 seems fine.
 
 
  @raspasov
  On Saturday, May 9, 2015 at 12:33:52 PM UTC-7, David Nolen wrote:
  Just released 0.0-3264, it fixes a critical issue where .js files were
 missing from the artifacts due to the changed build. Also included are a
 several fixes around the :libs feature, REPLs, and stack trace mapping.
 
 
  David
 
 
 
 
  On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen...@gmail.com 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 0.0-3255]
 
 
  A big thanks goes out to Jonathan Boston and Shaun Lebron for this
  release. Thanks to their efforts ClojureScript now includes a full
  port of clojure.pprint under the cljs.pprint namespace. This was the
  last major namespace in need of porting to ClojureScript.
 
 
  The release also bumps several dependencies: Clojure 1.7.0-beta2,
  tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
  0.0-20150505-021ed5b3.
 
 
  This release also fixes some regressions around async testing,
  docstring REPL support, arglist meta, and more.
 
 
  As always feedback welcome!
 
 
  ## 0.0-3255
 
 
  ### Changes
  * Update Closure Library dependency
  * CLJS-1252: Update Closure Compiler Dependency to v20150505
  * .clj - .cljc for important analysis / compilation bits
  * add public cljs.compiler.api namespace
  * CLJS-1224: cljs.repl: Memoize stack frame mapping
  * depend on tools.reader 0.9.2
 
 
  ### Enhancements
  * add cljs.pprint/pp macro
  * CLJS-710: port clojure.pprint
  * CLJS-1178: Compiler does not know Math ns is not not-native
  * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
  * support ^long and ^double type hints
 
 
  ### Fixes
  * fix cljs-1198 async testing regression
  * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
new Closure Library Release
  * CLJS-1225: Variadic function with same name as parent function gives
runtime error in advanced compile mode.
  * CLJS-1246: Add cljs.core/record? predicate.
  * CLJS-1239: Make eduction variadic.
  * CLJS-1244: tagged-literal precondition check missing wrapping vector
  * CLJS-1243: Add TaggedLiteral type  related fns
  * CLJS-1240: Add cljs.core/var?
  * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
arglists for doc, regression
  * CLJS-1212: Error in set ctor for  8-entry map literal
  * CLJS-1218: Syntax quoting an alias created with :require-macros
throws ClassCastException
  * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
eliding test metadata
  * CLJS-742: Compilation with :output-file option set fails
 
 
 
 
 
 
 
 
 
  --
 
  You received this message because you are subscribed to the Google
 
  Groups Clojure group.
 
  To post to this group, send email to clo...@googlegroups.com
 
  Note that posts from new members are moderated - please be patient with
 your first post.
 
  To unsubscribe from this group, send

Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-10 Thread David Nolen
ClojureScript now requires Clojure 1.7.0-beta2

On Sunday, May 10, 2015, Dmitri dmitri.sotni...@gmail.com wrote:

 Is there possibly anything else missing in the package, figwheel doesn't
 appear to find the repl ns.

 lein figwheel
 Retrieving org/clojure/clojurescript/0.0-3269/clojurescript-0.0-3269.pom
 from central
 Retrieving org/clojure/clojurescript/0.0-3269/clojurescript-0.0-3269.jar
 from central
 Exception in thread main java.io.FileNotFoundException: Could not locate
 cljs/repl__init.class or cljs/repl.clj on classpath: ,
 compiling:(figwheel_sidecar/repl.clj:1:1)



 On Sunday, May 10, 2015 at 10:20:13 AM UTC-4, David Nolen wrote:

 Just cut 0.0-3269 which adds the missing analysis and source map bits
 back into the artifacts. It also cleans up :libs support and fixes a
 related regression with Closure compatible libraries that follow classpath
 conventions (like transit-js). Both :libs Closure libraries and classpath
 aware Closure compatible libraries now enjoy REPL support.

 David

 On Sun, May 10, 2015 at 9:41 AM, David Nolen dnolen...@gmail.com wrote:

 It appears there are still some important bits missing from the
 artifacts. Working through the issues and will cut a release soon.

 David

 On Sun, May 10, 2015 at 12:22 AM, Rangel Spasov rasp...@gmail.com
 wrote:

 Hey guys,

 0.0-3264 fails for me with:

 clojure.lang.ExceptionInfo: failed compiling
 file:resources/public/js/compiled/out/cljs/core.cljs

  at clojure.core$ex_info.invoke (core.clj:4591)

 Caused by: java.lang.IllegalArgumentException: No implementation of
 method: :make-reader of protocol: #'clojure.java.io/IOFactory found
 for class: nil

  at clojure.core$_cache_protocol_fn.invoke (core_deftype.clj:554)

 0.0-3255 seems fine.

 @raspasov

 On Saturday, May 9, 2015 at 12:33:52 PM UTC-7, David Nolen wrote:

 Just released 0.0-3264, it fixes a critical issue where .js files were
 missing from the artifacts due to the changed build. Also included are a
 several fixes around the :libs feature, REPLs, and stack trace mapping.

 David

 On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen...@gmail.com
 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 0.0-3255]

 A big thanks goes out to Jonathan Boston and Shaun Lebron for this
 release. Thanks to their efforts ClojureScript now includes a full
 port of clojure.pprint under the cljs.pprint namespace. This was the
 last major namespace in need of porting to ClojureScript.

 The release also bumps several dependencies: Clojure 1.7.0-beta2,
 tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
 0.0-20150505-021ed5b3.

 This release also fixes some regressions around async testing,
 docstring REPL support, arglist meta, and more.

 As always feedback welcome!

 ## 0.0-3255

 ### Changes
 * Update Closure Library dependency
 * CLJS-1252: Update Closure Compiler Dependency to v20150505
 * .clj - .cljc for important analysis / compilation bits
 * add public cljs.compiler.api namespace
 * CLJS-1224: cljs.repl: Memoize stack frame mapping
 * depend on tools.reader 0.9.2

 ### Enhancements
 * add cljs.pprint/pp macro
 * CLJS-710: port clojure.pprint
 * CLJS-1178: Compiler does not know Math ns is not not-native
 * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
 * support ^long and ^double type hints

 ### Fixes
 * fix cljs-1198 async testing regression
 * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
   new Closure Library Release
 * CLJS-1225: Variadic function with same name as parent function gives
   runtime error in advanced compile mode.
 * CLJS-1246: Add cljs.core/record? predicate.
 * CLJS-1239: Make eduction variadic.
 * CLJS-1244: tagged-literal precondition check missing wrapping vector
 * CLJS-1243: Add TaggedLiteral type  related fns
 * CLJS-1240: Add cljs.core/var?
 * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
   arglists for doc, regression
 * CLJS-1212: Error in set ctor for  8-entry map literal
 * CLJS-1218: Syntax quoting an alias created with :require-macros
   throws ClassCastException
 * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
   eliding test metadata
 * CLJS-742: Compilation with :output-file option set fails


  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@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+u...@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

Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-10 Thread David Nolen
Just cut 0.0-3269 which adds the missing analysis and source map bits back
into the artifacts. It also cleans up :libs support and fixes a related
regression with Closure compatible libraries that follow classpath
conventions (like transit-js). Both :libs Closure libraries and classpath
aware Closure compatible libraries now enjoy REPL support.

David

On Sun, May 10, 2015 at 9:41 AM, David Nolen dnolen.li...@gmail.com wrote:

 It appears there are still some important bits missing from the artifacts.
 Working through the issues and will cut a release soon.

 David

 On Sun, May 10, 2015 at 12:22 AM, Rangel Spasov raspa...@gmail.com
 wrote:

 Hey guys,

 0.0-3264 fails for me with:

 clojure.lang.ExceptionInfo: failed compiling
 file:resources/public/js/compiled/out/cljs/core.cljs

  at clojure.core$ex_info.invoke (core.clj:4591)

 Caused by: java.lang.IllegalArgumentException: No implementation of
 method: :make-reader of protocol: #'clojure.java.io/IOFactory found for
 class: nil

  at clojure.core$_cache_protocol_fn.invoke (core_deftype.clj:554)

 0.0-3255 seems fine.

 @raspasov

 On Saturday, May 9, 2015 at 12:33:52 PM UTC-7, David Nolen wrote:

 Just released 0.0-3264, it fixes a critical issue where .js files were
 missing from the artifacts due to the changed build. Also included are a
 several fixes around the :libs feature, REPLs, and stack trace mapping.

 David

 On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen...@gmail.com 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 0.0-3255]

 A big thanks goes out to Jonathan Boston and Shaun Lebron for this
 release. Thanks to their efforts ClojureScript now includes a full
 port of clojure.pprint under the cljs.pprint namespace. This was the
 last major namespace in need of porting to ClojureScript.

 The release also bumps several dependencies: Clojure 1.7.0-beta2,
 tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
 0.0-20150505-021ed5b3.

 This release also fixes some regressions around async testing,
 docstring REPL support, arglist meta, and more.

 As always feedback welcome!

 ## 0.0-3255

 ### Changes
 * Update Closure Library dependency
 * CLJS-1252: Update Closure Compiler Dependency to v20150505
 * .clj - .cljc for important analysis / compilation bits
 * add public cljs.compiler.api namespace
 * CLJS-1224: cljs.repl: Memoize stack frame mapping
 * depend on tools.reader 0.9.2

 ### Enhancements
 * add cljs.pprint/pp macro
 * CLJS-710: port clojure.pprint
 * CLJS-1178: Compiler does not know Math ns is not not-native
 * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
 * support ^long and ^double type hints

 ### Fixes
 * fix cljs-1198 async testing regression
 * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
   new Closure Library Release
 * CLJS-1225: Variadic function with same name as parent function gives
   runtime error in advanced compile mode.
 * CLJS-1246: Add cljs.core/record? predicate.
 * CLJS-1239: Make eduction variadic.
 * CLJS-1244: tagged-literal precondition check missing wrapping vector
 * CLJS-1243: Add TaggedLiteral type  related fns
 * CLJS-1240: Add cljs.core/var?
 * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
   arglists for doc, regression
 * CLJS-1212: Error in set ctor for  8-entry map literal
 * CLJS-1218: Syntax quoting an alias created with :require-macros
   throws ClassCastException
 * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
   eliding test metadata
 * CLJS-742: Compilation with :output-file option set fails


  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.




-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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

Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-10 Thread David Nolen
It appears there are still some important bits missing from the artifacts.
Working through the issues and will cut a release soon.

David

On Sun, May 10, 2015 at 12:22 AM, Rangel Spasov raspa...@gmail.com wrote:

 Hey guys,

 0.0-3264 fails for me with:

 clojure.lang.ExceptionInfo: failed compiling
 file:resources/public/js/compiled/out/cljs/core.cljs

  at clojure.core$ex_info.invoke (core.clj:4591)

 Caused by: java.lang.IllegalArgumentException: No implementation of
 method: :make-reader of protocol: #'clojure.java.io/IOFactory found for
 class: nil

  at clojure.core$_cache_protocol_fn.invoke (core_deftype.clj:554)

 0.0-3255 seems fine.

 @raspasov

 On Saturday, May 9, 2015 at 12:33:52 PM UTC-7, David Nolen wrote:

 Just released 0.0-3264, it fixes a critical issue where .js files were
 missing from the artifacts due to the changed build. Also included are a
 several fixes around the :libs feature, REPLs, and stack trace mapping.

 David

 On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen...@gmail.com 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 0.0-3255]

 A big thanks goes out to Jonathan Boston and Shaun Lebron for this
 release. Thanks to their efforts ClojureScript now includes a full
 port of clojure.pprint under the cljs.pprint namespace. This was the
 last major namespace in need of porting to ClojureScript.

 The release also bumps several dependencies: Clojure 1.7.0-beta2,
 tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
 0.0-20150505-021ed5b3.

 This release also fixes some regressions around async testing,
 docstring REPL support, arglist meta, and more.

 As always feedback welcome!

 ## 0.0-3255

 ### Changes
 * Update Closure Library dependency
 * CLJS-1252: Update Closure Compiler Dependency to v20150505
 * .clj - .cljc for important analysis / compilation bits
 * add public cljs.compiler.api namespace
 * CLJS-1224: cljs.repl: Memoize stack frame mapping
 * depend on tools.reader 0.9.2

 ### Enhancements
 * add cljs.pprint/pp macro
 * CLJS-710: port clojure.pprint
 * CLJS-1178: Compiler does not know Math ns is not not-native
 * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
 * support ^long and ^double type hints

 ### Fixes
 * fix cljs-1198 async testing regression
 * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
   new Closure Library Release
 * CLJS-1225: Variadic function with same name as parent function gives
   runtime error in advanced compile mode.
 * CLJS-1246: Add cljs.core/record? predicate.
 * CLJS-1239: Make eduction variadic.
 * CLJS-1244: tagged-literal precondition check missing wrapping vector
 * CLJS-1243: Add TaggedLiteral type  related fns
 * CLJS-1240: Add cljs.core/var?
 * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
   arglists for doc, regression
 * CLJS-1212: Error in set ctor for  8-entry map literal
 * CLJS-1218: Syntax quoting an alias created with :require-macros
   throws ClassCastException
 * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
   eliding test metadata
 * CLJS-742: Compilation with :output-file option set fails


  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-09 Thread David Nolen
Just released 0.0-3264, it fixes a critical issue where .js files were
missing from the artifacts due to the changed build. Also included are a
several fixes around the :libs feature, REPLs, and stack trace mapping.

David

On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen.li...@gmail.com 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 0.0-3255]

 A big thanks goes out to Jonathan Boston and Shaun Lebron for this
 release. Thanks to their efforts ClojureScript now includes a full
 port of clojure.pprint under the cljs.pprint namespace. This was the
 last major namespace in need of porting to ClojureScript.

 The release also bumps several dependencies: Clojure 1.7.0-beta2,
 tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
 0.0-20150505-021ed5b3.

 This release also fixes some regressions around async testing,
 docstring REPL support, arglist meta, and more.

 As always feedback welcome!

 ## 0.0-3255

 ### Changes
 * Update Closure Library dependency
 * CLJS-1252: Update Closure Compiler Dependency to v20150505
 * .clj - .cljc for important analysis / compilation bits
 * add public cljs.compiler.api namespace
 * CLJS-1224: cljs.repl: Memoize stack frame mapping
 * depend on tools.reader 0.9.2

 ### Enhancements
 * add cljs.pprint/pp macro
 * CLJS-710: port clojure.pprint
 * CLJS-1178: Compiler does not know Math ns is not not-native
 * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
 * support ^long and ^double type hints

 ### Fixes
 * fix cljs-1198 async testing regression
 * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
   new Closure Library Release
 * CLJS-1225: Variadic function with same name as parent function gives
   runtime error in advanced compile mode.
 * CLJS-1246: Add cljs.core/record? predicate.
 * CLJS-1239: Make eduction variadic.
 * CLJS-1244: tagged-literal precondition check missing wrapping vector
 * CLJS-1243: Add TaggedLiteral type  related fns
 * CLJS-1240: Add cljs.core/var?
 * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
   arglists for doc, regression
 * CLJS-1212: Error in set ctor for  8-entry map literal
 * CLJS-1218: Syntax quoting an alias created with :require-macros
   throws ClassCastException
 * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
   eliding test metadata
 * CLJS-742: Compilation with :output-file option set fails



-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-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 0.0-3255]

A big thanks goes out to Jonathan Boston and Shaun Lebron for this
release. Thanks to their efforts ClojureScript now includes a full
port of clojure.pprint under the cljs.pprint namespace. This was the
last major namespace in need of porting to ClojureScript.

The release also bumps several dependencies: Clojure 1.7.0-beta2,
tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
0.0-20150505-021ed5b3.

This release also fixes some regressions around async testing,
docstring REPL support, arglist meta, and more.

As always feedback welcome!

## 0.0-3255

### Changes
* Update Closure Library dependency
* CLJS-1252: Update Closure Compiler Dependency to v20150505
* .clj - .cljc for important analysis / compilation bits
* add public cljs.compiler.api namespace
* CLJS-1224: cljs.repl: Memoize stack frame mapping
* depend on tools.reader 0.9.2

### Enhancements
* add cljs.pprint/pp macro
* CLJS-710: port clojure.pprint
* CLJS-1178: Compiler does not know Math ns is not not-native
* add getBasis methods to deftype and defrecord ctors a la Clojure JVM
* support ^long and ^double type hints

### Fixes
* fix cljs-1198 async testing regression
* CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
  new Closure Library Release
* CLJS-1225: Variadic function with same name as parent function gives
  runtime error in advanced compile mode.
* CLJS-1246: Add cljs.core/record? predicate.
* CLJS-1239: Make eduction variadic.
* CLJS-1244: tagged-literal precondition check missing wrapping vector
* CLJS-1243: Add TaggedLiteral type  related fns
* CLJS-1240: Add cljs.core/var?
* CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
  arglists for doc, regression
* CLJS-1212: Error in set ctor for  8-entry map literal
* CLJS-1218: Syntax quoting an alias created with :require-macros
  throws ClassCastException
* CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
  eliding test metadata
* CLJS-742: Compilation with :output-file option set fails

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: ANN: ClojureScript 0.0-3255 - pretty printer latest Closure Compiler / Library

2015-05-08 Thread David Nolen
I forgot to add that with this release there are now AOTed artifacts for
ClojureScript and all of its Clojure dependencies.

[org.clojure/clojurescript 0.0-3255 :classifier aot :exclusions
[org.clojure/tools.reader org.clojure/data.json]]
[org.clojure/tools.reader 0.9.2 :classifier aot]
[org.clojure/data.json 0.2.6 :classifier aot]

Should do the trick and should significantly improve cold compile and REPL
start times. Feedback on the AOTed ClojureScript artifact is most welcome.

David

On Fri, May 8, 2015 at 3:23 PM, David Nolen dnolen.li...@gmail.com 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 0.0-3255]

 A big thanks goes out to Jonathan Boston and Shaun Lebron for this
 release. Thanks to their efforts ClojureScript now includes a full
 port of clojure.pprint under the cljs.pprint namespace. This was the
 last major namespace in need of porting to ClojureScript.

 The release also bumps several dependencies: Clojure 1.7.0-beta2,
 tools.reader 0.9.2, Closure Compiler v20150505, and Closure Library
 0.0-20150505-021ed5b3.

 This release also fixes some regressions around async testing,
 docstring REPL support, arglist meta, and more.

 As always feedback welcome!

 ## 0.0-3255

 ### Changes
 * Update Closure Library dependency
 * CLJS-1252: Update Closure Compiler Dependency to v20150505
 * .clj - .cljc for important analysis / compilation bits
 * add public cljs.compiler.api namespace
 * CLJS-1224: cljs.repl: Memoize stack frame mapping
 * depend on tools.reader 0.9.2

 ### Enhancements
 * add cljs.pprint/pp macro
 * CLJS-710: port clojure.pprint
 * CLJS-1178: Compiler does not know Math ns is not not-native
 * add getBasis methods to deftype and defrecord ctors a la Clojure JVM
 * support ^long and ^double type hints

 ### Fixes
 * fix cljs-1198 async testing regression
 * CLJS-1254: Update REPL browser agent detection CLJS-1253: Create/Use
   new Closure Library Release
 * CLJS-1225: Variadic function with same name as parent function gives
   runtime error in advanced compile mode.
 * CLJS-1246: Add cljs.core/record? predicate.
 * CLJS-1239: Make eduction variadic.
 * CLJS-1244: tagged-literal precondition check missing wrapping vector
 * CLJS-1243: Add TaggedLiteral type  related fns
 * CLJS-1240: Add cljs.core/var?
 * CLJS-1214: :arglists meta has needless quoting CLJS-1232: bad
   arglists for doc, regression
 * CLJS-1212: Error in set ctor for  8-entry map literal
 * CLJS-1218: Syntax quoting an alias created with :require-macros
   throws ClassCastException
 * CLJS-1213: cljs.analyzer incorrectly marks all defs as tests when
   eliding test metadata
 * CLJS-742: Compilation with :output-file option set fails



-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: Performance of defmulti in both ClojureScript and Clojure

2015-04-27 Thread David Nolen
A quick glance at your benchmarking setup, it's not clear that you are
benchmarking what you think you are benchmarking, and jsperf is not a
suitable benchmarking harness (irrespective of it's popularity).
Benchmarking is hard, benchmarking JavaScript is harder, and benchmarking
JavaScript that went through Google Closure is even more challenging than
that. It's for this reason we have our own simple benchmarking suite that
we run in the project repo itself against 4 JavaScript engines (V8,
JavaScriptCore, SpiderMonkey, Nashorn) at the command line.

For people that want to see accurate benchmarking information posted to
some public location, this is a great place to get involved contributing to
ClojureScript without needing to dig into the compiler.

My earlier points about the general performance expectations of
multimethods in ClojureScript still stands :)

David

On Mon, Apr 27, 2015 at 9:44 AM, Andy- andre.r...@gmail.com wrote:

 Looks like they're pretty slow compared to a simple case:

 http://jsperf.com/cljs-multimethods

 https://github.com/rauhs/cljs-perf


 On Saturday, April 25, 2015 at 10:33:18 AM UTC-4, Timur wrote:

 Hi everyone,

 There are situations where I want to dispatch functions using based on
 their certain properties. I can also use case statements instead but it
 looks more coupled and more change is required if I want to add new types.

 What I want to ask is if I need to avoid using multi-methods for
 performance reasons? I read somewhere that they are not really fast but the
 posts were old and the performance might have been improved in between.
 Should I favor case and cond branches instead of defmulti when I need
 performance?

 Thanks for your help!!!

 Regards.

 Timur

  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: Performance of defmulti in both ClojureScript and Clojure

2015-04-26 Thread David Nolen
Nearly all the performance notes about Clojure multimethods apply to
ClojureScript.

On Saturday, April 25, 2015, Alex Miller a...@puredanger.com wrote:

 I should say all of that is for Clojure and likely bears no similarity to
 the nuances in ClojureScript.

 On Saturday, April 25, 2015 at 9:39:06 PM UTC-5, Alex Miller wrote:

 On Saturday, April 25, 2015 at 9:33:18 AM UTC-5, Timur wrote:

 Hi everyone,

 There are situations where I want to dispatch functions using based on
 their certain properties. I can also use case statements instead but it
 looks more coupled and more change is required if I want to add new types.


 case is useful for the particular situation where you have a finite set
 of compile-time constants that you are looking for (integers, characters,
 etc). Then case will leverage a special JVM bytecode that performs a
 *constant-time* look-up (not linear-time like checking a series of cond
 conditions, etc). This is one of the two bytecode options (tableswitch,
 rather than lookupswitch) underlying the Java switch/case feature.

 What I want to ask is if I need to avoid using multi-methods for
 performance reasons? I read somewhere that they are not really fast but the
 posts were old and the performance might have been improved in between.
 Should I favor case and cond branches instead of defmulti when I need
 performance?


 multimethods are slower than protocols - they must effectively invoke the
 dispatch function, perform a linear search for a match across the cases,
 and then invoke the actual implementation function. Protocols leverage JVM
 internals to select the right implementation, then invoke it. However, the
 search part of multimethods is cached, making that step fast after the
 initial call. The last time I benchmarked multimethods with class dispatch
 vs protocols on Java 1.8 + Clojure 1.7 alphas (can't remember which one), I
 found multimethods were about 5x slower.

 If you want fastest type-based dispatch with open extension, then
 protocols are the best.
 If you want any other type of dispatch with open extension, then
 multimethods are the best.
 If you want a closed system of constant choices, then case is best
 (constant-time lookup!)
 If you want a closed system of arbitrary conditions, then cond is best.

 I have never compared the performance of cond vs multimethods for
 something like this. My guess is that multimethods are faster as they
 evaluate a single condition, then do a table lookup once cached vs
 evaluating a series of conditions every time.

 Alex

  --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 javascript:_e(%7B%7D,'cvml','clojure@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
 javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@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
 javascript:_e(%7B%7D,'cvml','clojure%2bunsubscr...@googlegroups.com');.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: ANN: ClojureScript 0.0-3211

2015-04-25 Thread David Nolen
You need to make sure some other dependency isn't pulling in a different
version of tools.reader.

David

On Sat, Apr 25, 2015 at 11:11 PM, Allen Rohner aroh...@gmail.com wrote:



 On Saturday, April 25, 2015 at 12:02:08 PM UTC-5, Mike Fikes wrote:

 Hey Tony, try updating the version of Clojure in your project.clj to
 1.7.0-beta1, which is used by 0.0-3211.

 (In short, reader/read was given a second arity to allow options to be
 passed, thus supporting #? conditional reading.)


 I'm seeing the same behavior on 1.7.0-beta2. Yes, I've cleaned.

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 0.0-3211

2015-04-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 0.0-3211]

This release is a bugfix release addressing some regressions as well
as introducing some further REPL refinements.

As usual feedback welcome!

## 0.0-3211

### Changes
* CLJS-1205: Conditional reading in REPLs
* CLJS-1204: cljs.build.api/watch can now take compilation inputs
* CLJS-1203: standard way to pass multiple directories to build

### Fixes
* CLJS-1216: incorrect max fixed arity for fns both multi-arity and
variadic
* cljs.analyzer/parse-ns did not bind *cljs-file*
* CLJS-1201: compare broken for IIndexed collections
* CLJS-1202: cljs.repl/load-file is not additive
* CLJS-1199: array-map should skip dropped elements of IndexedSeq
* CLJS-1197: load-file does not reload associated macro namespace

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: [ClojureScript] Re: [ANN] Clojure 1.7.0-beta1 released

2015-04-13 Thread David Nolen
The only reason :default exists is because *anything* in JavaScript can be
thrown and there needs to be some way to catch non-Error derived values.
This is not the case for Java of course. :default could probably be aliased
to Throwable, but in the meantime differences like this are now handleable
via conditional reading.

David

On Mon, Apr 13, 2015 at 6:37 AM, Robin Heggelund Hansen 
skinney...@gmail.com wrote:

 Hmm... In Clojurescript you can do the following

 (try
   ;; throw something
   (catch :default e
  e))

 When I try the same thing in Clojure, it seems to not be supported. Is
 there any plans to support this syntax in Clojure 1.7?

 --
 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 clojurescr...@googlegroups.com.
 Visit this group at http://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 clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 0.0-3196, Conditional Reading, REPLs, and Code Motion

2015-04-11 Thread David Nolen
I was able to connect IntelliJ to a REPL because Cursive can now connect to
a ClojureScript REPL started in the usual way. There is no special setup,
make sure you've taken the time to read the new ClojureScript Quick Start.

HTH,
David

On Sat, Apr 11, 2015 at 5:06 AM, Georgi Danov georgi.da...@gmail.com
wrote:

 Hi,
  I keep having troubles running repl with piggieback and once again I see
 in the changelog this was improved. I also saw the screenshot in your last
 tweet which clearly shows intellij can connect.

  Can you please share your project set-up? Some sort of sample project
 that has that up  running would be of great value.

  Even when I follow the tutorials I end up in weird exceptions, last one
 being

 No implementation of method: :-evaluate of protocol:
 #'cljs.repl/IJavaScriptEnv found for class: clojure.lang.PersistentArrayMap
 at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:554)

  --
 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 clojurescr...@googlegroups.com.
 Visit this group at http://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 clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 0.0-3196, Conditional Reading, REPLs, and Code Motion

2015-04-11 Thread David Nolen
Yep, the clojure.main option is the one you want.

David

On Sat, Apr 11, 2015 at 10:45 AM, Georgi Danov georgi.da...@gmail.com
wrote:

 I did read it very carefully several times, but kept trying to use it via
 remote connection (headbang).

 I got it running using the config use clojure.main in normal JVM
 process, is this how it's supposed to be?


 On Saturday, April 11, 2015 at 4:06:47 PM UTC+2, David Nolen wrote:
  I was able to connect IntelliJ to a REPL because Cursive can now connect
 to a ClojureScript REPL started in the usual way. There is no special
 setup, make sure you've taken the time to read the new ClojureScript Quick
 Start.
 
 
  HTH,
  David
 
 
  On Sat, Apr 11, 2015 at 5:06 AM, Georgi Danov georgi...@gmail.com
 wrote:
 
  Hi,
   I keep having troubles running repl with piggieback and once again I
 see in the changelog this was improved. I also saw the screenshot in your
 last tweet which clearly shows intellij can connect.
 
   Can you please share your project set-up? Some sort of sample project
 that has that up  running would be of great value.
 
   Even when I follow the tutorials I end up in weird exceptions, last one
 being
 
  No implementation of method: :-evaluate of protocol:
 #'cljs.repl/IJavaScriptEnv found for class: clojure.lang.PersistentArrayMap
  at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:554)
 
 
 
 
 
 
 
 
  --
 
  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 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 clojurescr...@googlegroups.com.
 Visit this group at http://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 clojure@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.


ANN: ClojureScript 0.0-3196, Conditional Reading, REPLs, and Code Motion

2015-04-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 0.0-3196]

This release is intended to coincide with Clojure 1.7.0-beta1. Besides
conditional reading support, it includes a number of improvements and
bug fixes around REPLs. Piggieback (and thus nREPL) integration has
been greatly enhanced. Also notable is significantly improved cross
module code motion under :modules.

As always feedback welcome!

## 0.0-3196

### Enhancements
* Conditional reading
* map clojure.core/in-ns to REPL in-ns special for existing tools
* CLJS-1171: map clojure.repl/doc, clojure.repl/source, clojure.repl/dir
* add macroexpand and macroexpand-1 macros
* CLJS-1019: REPL source map caching support
* CLJS-1154: Unmunged function names for stacktrace

### Changes
* Clojure 1.7.0-beta1 dependency
* tools.reader 0.9.1 dependency
* CLJS-1188: multi-arity fns hinder cross-module code motion
* cljs.test needs to default to sync
* CLJS-1184: log module building activity under verbose
* CLJS-1175: CLJS defmulti doesn't exhibit same defonce behavior as
Clojure's defmulti, suggesting an even better reloading behavior
* CLJS-1176: redirect node REPL output through *out* and *err*, not
System/out, System/err
* CLJS-1144 - expose defaul-dispatch-val and dispatch-fn multifn accessors
* CLJ-1172: supply main entry points for all standard REPLs
* less noisy REPL prompt
* add docstrings  validation to macroexpand  macroexpand-1

### Fixes
* CLJS-1192: eliminate JDK8 API dependency in cljs.repl.node
* CLJS-1158: Regression: compiler fails to see symbols defined in another
namespace
* CLJS-1189: array-map will return PersistentHashMap if applied to more
than (.-HASHMAP-THRESHOLD PersistentArrayMap) pairs
* CLJS-1183: load-file doesn't copy source to output directory
* CLJS-1187: var ast contains internal nodes with bad analysis :context
* CLJS-1182: semantics of load-file should be require + implicit :reload
* CLJS-1179: strange load-file behavior
* CLJS-808: Warning from `find-classpath-lib` mistakenly included in
generated source
* CLJS-1169: cannot use REPL load-file on files that declare single segment
namespaces
* don't use print unless printing the result of eval
* CLJS-1162: Failure to printStackTrace when REPL initialized
* CLJS-1161: actually print error stack traces to *err*, allow higher-level
rebindings of *cljs-ns*
* CLJS-841: cljs.closure/build file locks
* CLJS-1156: load-file fails with :make-reader issue
* CLJS-1152: (require 'some.ns :reload) causes printing to stop working in
browser REPL
* CLJS-1157: Stacktrace unmunging blindly use locals
* CLJS-1155: REPL :watch support does not play nicely with :cljs/quit
* CLJS-1137: :cljs/quit fails to actually quit in browser REPL
* CLJS-1148: ClojureScript REPL must maintain eval/print pairing
* make quit-prompt configurable
* CLJS-1149: cljs.repl/repl needs to support :compiler-env option
* CLJS-1140: typo in cljs.repl/repl, `:need-prompt prompt` instead of
`:need-prompt need-prompt`

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: Current state of automatic generation of externs file for CLJS Advanced Compilation?

2015-03-24 Thread David Nolen
This is part of the proposed GSoC ClojureScript  Closure project so we're
likely to see support for this by sometime this fall.

Dvid

On Mon, Mar 23, 2015 at 10:42 PM, james borden jmbor...@gmail.com wrote:

 Is there a way to automatically generate externs files for js libraries
 for use with the cljs advanced compilation mode?

 I am having problems using a cljsjs package because its extern file does
 not contain all of the methods of an object I need to complete the
 introductory tutorial for the js library. My workaround is to create a
 separate extern file and include the method I need. However, there seems to
 be many more methods/properties missing from the cljsjs extern file and I
 would like to just generate a new one and make a pull request.

 Is there currently a method someone is using to automatically generate
 one? It seems tedious and prone to error to generate extern files manually.

 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@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.


-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


ANN: ClojureScript 0.0-3126, fix for minor REPL regression

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

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

New release version: 0.0-3126

Leiningen dependency information:

[org.clojure/clojurescript 0.0-3126]

This release just fixes a minor REPL related regression.

## 0.0-3126

### Fixes
* Need to wrap REPL -setup calls in cljs.compiler/with-core-cljs

-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@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.


Re: [ClojureScript] Re: ANN: ClojureScript 0.0-3115

2015-03-17 Thread David Nolen
Yes I said earlier that you'll want SNAPSHOT releases of both weasel and
piggieback. The current release of piggieback doesn't include this commit
https://github.com/cemerick/piggieback/commit/966c811ab817df0e818404943c473081337b286e

In the case of weasel you might want to try a local install of my patched
fork https://github.com/swannodette/weasel

David

On Tue, Mar 17, 2015 at 5:29 AM, Leon Grapenthin grapenthinl...@gmail.com
wrote:

 And stacktrace - looks like a piggieback issue:
   core.clj: 4577  clojure.core/ex-info
   analyzer.clj:  379  cljs.analyzer/error
   analyzer.clj:  376  cljs.analyzer/error
   analyzer.clj: 1249  cljs.analyzer/analyze-deps
   analyzer.clj: 1494  cljs.analyzer/eval18559/fn
   MultiFn.java:  251  clojure.lang.MultiFn/invoke
   analyzer.clj: 1833  cljs.analyzer/analyze-seq
   analyzer.clj: 1925  cljs.analyzer/analyze/fn
   analyzer.clj: 1918  cljs.analyzer/analyze
   analyzer.clj: 2133  cljs.analyzer/analyze-file/fn
   analyzer.clj: 2129  cljs.analyzer/analyze-file
   analyzer.clj: 1246  cljs.analyzer/analyze-deps
   analyzer.clj: 1494  cljs.analyzer/eval18559/fn
   MultiFn.java:  251  clojure.lang.MultiFn/invoke
   analyzer.clj: 1833  cljs.analyzer/analyze-seq
   analyzer.clj: 1925  cljs.analyzer/analyze/fn
   analyzer.clj: 1918  cljs.analyzer/analyze
   analyzer.clj: 2133  cljs.analyzer/analyze-file/fn
   analyzer.clj: 2129  cljs.analyzer/analyze-file
   analyzer.clj: 1246  cljs.analyzer/analyze-deps
   analyzer.clj: 1494  cljs.analyzer/eval18559/fn
   MultiFn.java:  251  clojure.lang.MultiFn/invoke
   analyzer.clj: 1833  cljs.analyzer/analyze-seq
   analyzer.clj: 1925  cljs.analyzer/analyze/fn
   analyzer.clj: 1918  cljs.analyzer/analyze
   repl.clj:  389  cljs.repl/evaluate-form
   repl.clj:  386  cljs.repl/evaluate-form
 piggieback.clj:  116  cemerick.piggieback/cljs-eval/fn
   AFn.java:  152  clojure.lang.AFn/applyToHelper
   AFn.java:  144  clojure.lang.AFn/applyTo
   core.clj:  626  clojure.core/apply
   core.clj: 1864  clojure.core/with-bindings*
RestFn.java:  425  clojure.lang.RestFn/invoke
 piggieback.clj:   97  cemerick.piggieback/cljs-eval
   AFn.java:  165  clojure.lang.AFn/applyToHelper
   AFn.java:  144  clojure.lang.AFn/applyTo
   core.clj:  628  clojure.core/apply
 piggieback.clj:  180  cemerick.piggieback/cljs-repl/fn
RestFn.java:  436  clojure.lang.RestFn/invoke
   Var.java:  388  clojure.lang.Var/invoke
   REPL:1
 colligent.components.staff.vouchers/eval30315
  Compiler.java: 6767  clojure.lang.Compiler/eval
  Compiler.java: 6730  clojure.lang.Compiler/eval
   core.clj: 3076  clojure.core/eval
   main.clj:  239  clojure.main/repl/read-eval-print/fn
   main.clj:  239  clojure.main/repl/read-eval-print
   main.clj:  257  clojure.main/repl/fn
   main.clj:  257  clojure.main/repl
RestFn.java: 1523  clojure.lang.RestFn/invoke
 interruptible_eval.clj:   67
 clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn
   AFn.java:  152  clojure.lang.AFn/applyToHelper
   AFn.java:  144  clojure.lang.AFn/applyTo
   core.clj:  626  clojure.core/apply
   core.clj: 1864  clojure.core/with-bindings*
RestFn.java:  425  clojure.lang.RestFn/invoke
 interruptible_eval.clj:   51
 clojure.tools.nrepl.middleware.interruptible-eval/evaluate
 interruptible_eval.clj:  183
 clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
 interruptible_eval.clj:  152
 clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn
   AFn.java:   22  clojure.lang.AFn/run
ThreadPoolExecutor.java: 1145
 java.util.concurrent.ThreadPoolExecutor/runWorker
ThreadPoolExecutor.java:  615
 java.util.concurrent.ThreadPoolExecutor$Worker/run
Thread.java:  745  java.lang.Thread/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 

  1   2   3   4   5   6   7   8   9   10   >