This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-06-10
Channels
- # aleph (1)
- # beginners (39)
- # boot (14)
- # cider (2)
- # clara (6)
- # cljs-dev (39)
- # cljsrn (2)
- # clojure (276)
- # clojure-italy (1)
- # clojure-russia (22)
- # clojure-sg (2)
- # clojure-spec (7)
- # clojure-uk (9)
- # clojurescript (47)
- # core-async (1)
- # cursive (5)
- # emacs (1)
- # events (3)
- # leiningen (1)
- # luminus (2)
- # lumo (75)
- # om (14)
- # onyx (1)
- # parinfer (11)
- # pedestal (1)
- # ring-swagger (2)
- # spacemacs (4)
- # untangled (5)
- # yada (29)
@mfikes: if you give me a couple of days, I can polish up my work on this and share it with you. My status on this and what's left: I have gotten cljs and self_host tests running in Travis CI. I need to fix the runner such that on failure, the script exists with a non-zero exit code.
ClojureScript now has a resolve
macro https://github.com/clojure/clojurescript/commit/3438f205b6b692f64af5d3f15b34a0e223363fa4
self host tests pass but I wasn’t particularly rigorous, would be nice to have people try it out
it’s basically var
but it won’t throw at compile time, should be useful in lazy loading situations
@dnolen just glanced over it but won’t that fail if the namespace the resolve is referring to isn’t compiled yet?
for better integration with Closure Modules I’m thinking about adding a new ns cljs.loader
, you could require it to get access to a shared module loader - anybody have problems with the name?
I like it. I have https://github.com/thheller/shadow-cljs/blob/master/src/main/shadow/loader.js
["goog/disposable/idisposable.js", "goog/disposable/disposable.js",
"goog/debug/error.js", "goog/dom/nodetype.js",
"goog/string/string.js", "goog/asserts/asserts.js",
"goog/array/array.js", "goog/promise/thenable.js",
"goog/async/freelist.js", "goog/async/workqueue.js",
"goog/debug/entrypointregistry.js", "goog/dom/htmlelement.js",
"goog/dom/tagname.js", "goog/functions/functions.js",
"goog/labs/useragent/util.js", "goog/object/object.js",
"goog/labs/useragent/browser.js", "goog/labs/useragent/engine.js",
"goog/async/nexttick.js", "goog/async/run.js",
"goog/promise/resolver.js", "goog/promise/promise.js",
"goog/mochikit/async/deferred.js",
"goog/labs/useragent/platform.js", "goog/reflect/reflect.js",
"goog/useragent/useragent.js", "goog/debug/debug.js",
"goog/debug/logrecord.js", "goog/debug/logbuffer.js",
"goog/debug/logger.js", "goog/math/math.js", "goog/iter/iter.js",
"goog/log/log.js", "goog/structs/map.js",
"goog/structs/simplepool.js", "goog/debug/tracer.js",
"goog/module/module.js", "goog/module/basemodule.js",
"goog/module/moduleloadcallback.js", "goog/module/moduleinfo.js",
"goog/module/abstractmoduleloader.js",
"goog/module/modulemanager.js", "goog/events/browserfeature.js",
"goog/events/eventid.js", "goog/events/event.js",
"goog/events/eventtype.js", "goog/events/browserevent.js",
"goog/events/listenable.js", "goog/events/listener.js",
"goog/events/listenermap.js", "goog/events/events.js",
"goog/events/eventtarget.js", "goog/timer/timer.js",
"goog/events/eventhandler.js", "goog/net/bulkloaderhelper.js",
"goog/net/eventtype.js", "goog/json/json.js",
"goog/net/errorcode.js", "goog/net/httpstatus.js",
"goog/net/xhrlike.js", "goog/net/xmlhttpfactory.js",
"goog/net/wrapperxmlhttpfactory.js", "goog/net/xmlhttp.js",
"goog/structs/structs.js", "goog/uri/utils.js", "goog/net/xhrio.js",
"goog/net/bulkloader.js", "goog/dom/browserfeature.js",
"goog/dom/tags.js", "goog/string/typedstring.js",
"goog/string/const.js", "goog/html/safescript.js",
"goog/html/safestyle.js", "goog/html/safestylesheet.js",
"goog/fs/url.js", "goog/i18n/bidi.js",
"goog/html/trustedresourceurl.js", "goog/html/safeurl.js",
"goog/html/safehtml.js", "goog/dom/safe.js",
"goog/html/uncheckedconversions.js", "goog/math/coordinate.js",
"goog/math/size.js", "goog/dom/dom.js",
"goog/html/legacyconversions.js", "goog/net/jsloader.js",
"goog/useragent/product.js", "goog/module/moduleloader.js",
"shadow/loader.js", "shadow/module/append/loader.js"]
so to make this a bit cleaner I’m going to add two compiler constants cljs.loader/MODULE_INFOS
and cljs.loader/MODULE_GRAPH
the way I currently inject the config is by appending shadow.loader.setup(...);
to the module that contains the loader. works ok but as I said it may change the signature of the loader file and any potential cache.
working with constants should be just about the same amount of code though so no reason for the function call
Following the instructions on [Patches][1], I created a branch from master
and ran ./script/build
, which worked wonderfully. I added the new dependency to a minimal example, to confirm that it all went accordingly. Additionally, I ran ./script/bootstrap && ./script/test
, but my question is, is that enough verification on my end to warrant submitting a patch on JIRA? I don't want to waste people's time.
[1] https://clojurescript.org/community/patches
@jvtrigueros You can also run script/test-self-parity
to run the compiler’s unit tests in self-hosted mode
I also, see that V8, Nashorn, and Spidermonkey tests were skipped because these were not found in the PATH. I reckon those are important. I'm running the compiler build in a Docker container as I'm on Windows and there wasn't a clear way to build the compiler that way.
@jvtrigueros Also ensure you have taken care of the CA before submitting patches in JIRA (https://clojurescript.org/community/contributing)
Thanks @mfikes! Already submitted the CA. I'll go ahead and install what I need to run the tests necessary.