This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-06-23
Channels
- # bangalore-clj (1)
- # beginners (23)
- # boot (90)
- # cljs-dev (133)
- # cljsrn (5)
- # clojure (104)
- # clojure-austin (1)
- # clojure-belgium (2)
- # clojure-dev (12)
- # clojure-gamedev (4)
- # clojure-italy (2)
- # clojure-russia (6)
- # clojure-spec (30)
- # clojure-uk (117)
- # clojurescript (197)
- # core-async (25)
- # cursive (9)
- # datomic (95)
- # devops (1)
- # dirac (49)
- # emacs (1)
- # hoplon (3)
- # immutant (10)
- # lein-figwheel (2)
- # luminus (5)
- # off-topic (43)
- # pedestal (1)
- # protorepl (1)
- # re-frame (13)
- # sql (5)
- # untangled (1)
TCHECK-131 is not resolved, so I’ve attached a patch that reverts CLJS-2082 (dealing with minor conflicts) to https://dev.clojure.org/jira/browse/CLJS-2110
yes the spec bug is a problem but if we’re going to do that I want to fix the spec caching issues
OK. The spec caching issues is this one? https://dev.clojure.org/jira/browse/CLJS-1989
and probably want to this at least a slightly generic way so we can reuse it for something else later
Ahh. Clever solution. That one hadn’t crossed my mind. Otherwise it is a tough problem. 🙂
this release will already be something of a whopper in terms of enhancements/fixes/changes
as far as I can tell symbol resolution for dotted symbols is special case where the symbol is just returned?
no, syntax quote fully resolves symbols in the form based on current namespace
so `foo should always yield a fully-qualified symbol, which is what fdef expects
@alexmiller yes I know that
`foo.core will resolve to user/foo.core or whatever
ohhhh, this has different rules due to Java classes
that’s treated as a Java class named foo.core
in Clojure
.‘s are not allowed in symbol name parts (for this reason)
this is on the reader reference page I believe
so, is there still a question now? sorry, no context
my assumption is that it is always safe to just return a dotted symbol w/o resolving it because of what you just said
seems like that matches behavior in Clojure
dotted unqualified symbol that is
although I guess qualified symbols are also returned as is
no you can
user=> (alias 'a.b 'clojure.string)
nil
user=> `a.b/join
clojure.string/join
CI spinning away successfully: https://github.com/mfikes/clojurescript/commits/master
Cool. CI is working. The error in https://travis-ci.org/mfikes/clojurescript/builds/246270269 is fixed with the patch in https://dev.clojure.org/jira/browse/CLJS-2116
@mfikes We've been using in production for the past week a prelease CLJS from right after the two patches I submitted, no problems. Great perf enhancements
if you use a goog define var, better not use const too because the GCC will never see the var name to replace it
It was something like (def ^:const MY-COMPILE-TIME-CONSTANT "@define {string}" "default-value")
I don't know if this situation is even fixable, given the nature of each feature. You just need to be aware that they interact.
I don’t know why you would use these two features together - but we’ll see when it goes out
@mfikes while peak perf in Nashorn still leaves something to be desired, start has improved a lot
@mfikes https://github.com/clojure/clojurescript/commit/f119f6596cb136ddcb4d35e76156124a331a4e8b
@mfikes it’s a bit tricky since this code requires cljs.spec.alpha
if not already loaded if we encounter this in the analysis cache
Thanks. I actually have a patch that might be very close. Hitting some strangeness when trying to use it with Planck. I’ll attach it to the ticket so you and @anmonteiro can see what I’m testing.
Attached it to https://dev.clojure.org/jira/browse/CLJS-2117
The strangeness I’m working through is what appears to be infinite recursion when Planck attempts to AOT compile the cljs.spec.alpha
namespace. I think I’ll comment that AOT compilation out and see how the revised code behaves anyway.
I’m commenting out pieces of that patch to attempt to isolate what is causing the infinite recursion (which happens whenever loading cljs.spec.alpha
, not just for Placnk’s AOT use case): Here is an example: https://gist.github.com/mfikes/bf030bf47b265325e95a53290558c04a
Aha! cljs.analyzer
can’t explicitly depend on cljs.spec.alpha
because that then depends on cljs.analyzer
. Trying a variant that just moves that explicit dependency into cljs.js
itself.
Yeah. Actually making use of the exact same technique used to grab the macroexpand var
(We went through a few iterations until that was found to be the most robust way, for some reason.)
Things appear to be working. Attached a v2 patch. Only funny looking thing in the patch is that the symbol is '-speced-vars
I’m going to re-test the Clojure cases, and also remove some workarounds I had in Planck for this defect and ensure the workarounds are no longer needed.
Yeah, it is because it is taking js-keys
and trying to reverse them back to Clojure symbols
@mfikes heh yeah - even 2 years later bootstrapped doesn’t cease feeling a bit magical 🙂
@dnolen There is a comment made by Heller in CLJS-1989 regarding another atom that might be holding side effects of s/def
… cljs.spec/registry-ref
. I wonder if that is covered by these changes or is a separate chunk of important state