This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-28
Channels
- # beginners (8)
- # boot (49)
- # cljs-dev (29)
- # cljsrn (9)
- # clojure (238)
- # clojure-dev (3)
- # clojure-gamedev (1)
- # clojure-italy (7)
- # clojure-norway (11)
- # clojure-russia (39)
- # clojure-sanfrancisco (3)
- # clojure-spec (116)
- # clojure-sweden (2)
- # clojure-uk (53)
- # clojurescript (90)
- # cursive (13)
- # datomic (12)
- # defnpodcast (2)
- # dirac (1)
- # emacs (11)
- # figwheel (2)
- # hoplon (15)
- # jobs (3)
- # jobs-discuss (48)
- # keechma (1)
- # klipse (4)
- # leiningen (16)
- # luminus (4)
- # lumo (49)
- # mount (10)
- # off-topic (1)
- # om (13)
- # onyx (15)
- # pedestal (67)
- # perun (1)
- # planck (16)
- # powderkeg (33)
- # proton (1)
- # protorepl (2)
- # re-frame (16)
- # reagent (4)
- # ring (9)
- # ring-swagger (10)
- # rum (5)
- # slack-help (1)
- # spacemacs (1)
- # uncomplicate (15)
- # untangled (19)
- # yada (58)
Does a lumo install (via Homebrew or whatever mechanism) contain the CLJS sources anywhere, or are they compiled into the binary?
@cfleming Lumo 1.2.0 contains the CLJS sources
these are internal APIs and subject to change, but this should work:
(require '[ :as io])
(io/slurp (io/resource “cljs/core.cljs"))
bundled files are in the “classpath"
@anmonteiro Are they stored on the disk somewhere? To support Lumo in Cursive, I’d need to create an “SDK” with access to those files (i.e. I don’t want to access them from CLJS itself)
they’re bundled into the binary
you can see what files are there with:
cljs.user=> (def nexeres (js/require "nexeres"))
#'cljs.user/nexeres
cljs.user=> (.keys nexeres)
they’re gzipped + base64 encoded
and I suppose I’m just making your job harder
Say the user says they want to create a Lumo project, or a Lumo module within an existing project.
this is how we get those files: https://github.com/anmonteiro/lumo/blob/master/src/js/lumo.js#L65-L77
nexeres
is an internal module to Nexe, the tool we use to package up the binary
Ok, so the files are stored separately on disk, it’s not all crammed into a single binary?
they’re not on disk
nexeres
is just a JS object whose keys are “filenames” and the values are base64 encoded strings of the file contents
@cfleming are you going to Clojure/West?
ah. I was hoping we could speak in person
So I guess the only option would be to write a Java lib that knows how to extract those files from the binary.
oh wow, that’s going to be hard
@cfleming are you trying to integrate Planck too?
Because I think you’ll have the same problem
not currently
but we could make that happen
Does Lumo provide more than just CLJS? Are there any Lumo-specific namespaces exposed to Lumo apps?
lumo.build.api
for example
to compile projects + interface with Google Closure Compiler JS
Ok, I was wondering about just maintaining a mapping of Lumo version to CLJS version, and just attaching CLJS to the SDK, but I guess that won’t work.
@cfleming can you open an issue describing the problem? maybe we can get some more people to chime in and start floating ideas around
thanks!
does this thing need to be static?
how does it work with Clojure, for example? is it just static analysis?