lumo

:lumo: Standalone ClojureScript environment. Currently at version 1.9.0
stbgz 2017-08-29T19:04:51.000067Z

which is unfortunate because I was hopping for a clj only dep resolution implementation

stbgz 2017-08-29T19:05:26.000124Z

as far as I can tell huckleberry is the only dep resolultion implementation in clj

richiardiandrea 2017-08-29T19:05:37.000532Z

yep you are right

dominicm 2017-08-29T19:05:57.000349Z

@stbgz resolution was a non goal. Likely because of all the stigma around implementing checksums and signatures.

stbgz 2017-08-29T19:06:35.000357Z

I see

dominicm 2017-08-29T19:07:05.000432Z

The interest is generating class paths as far as I can tell.

stbgz 2017-08-29T19:07:37.000329Z

right!

stbgz 2017-08-29T19:08:31.000068Z

you know the whole classpath thing for cljs makes little sense to me... why do we need them in cljs

stbgz 2017-08-29T19:09:20.000230Z

I think we ought to rethink the whole classpath thing for cljs

richiardiandrea 2017-08-29T19:10:02.000096Z

in cljs-JVM there is still a classpath, unless things change in the future and we take an npm approach for installing compiled js from cljs in node_modules

stbgz 2017-08-29T19:10:04.000661Z

I know in lumo we can dynamically inject new dependencies at runtime

richiardiandrea 2017-08-29T19:10:28.000179Z

in lumo yep that's true

stbgz 2017-08-29T19:11:02.000402Z

@richiardiandrea agreed I think we should be pushing the boundaries in that regard

1👍
stbgz 2017-08-29T19:11:42.000368Z

and truly exploit the host(`js`) capabilities

stbgz 2017-08-29T19:13:13.000329Z

also I don't if I mentioned this before I tried running aether through one of the java->js convertes and it did not work for some fundamental reason. that I now forgot since I did it several weeks ago

stbgz 2017-08-29T19:13:21.000080Z

it wasn't gwt though

1👍
stbgz 2017-08-29T19:13:28.000392Z

I'll have to give that a try

1👍
richiardiandrea 2017-08-29T19:17:08.000257Z

@stbgz from what I understood there should be some sort of node.js virtual machine for the java calls...for instance for IO

richiardiandrea 2017-08-29T19:19:00.000528Z

like http://plasma-umass.github.io/doppio-demo/

richiardiandrea 2017-08-29T19:20:54.000383Z

I think JSweet does not provide that

dominicm 2017-08-29T19:26:55.000035Z

I think clojurescript has entwined it's fate to that of classpaths. The model it uses for consuming cljs code is quite tied to it. I'm sure @anmonteiro could speak to how true this is/isn't, particularly given the latest work on Google closure + node modules.

anmonteiro 2017-08-29T19:27:38.000089Z

uh

1😂
dominicm 2017-08-29T19:28:53.000429Z

Sorry, didn't mean to put you on the spot :)

anmonteiro 2017-08-29T19:29:37.000166Z

no it’s OK

anmonteiro 2017-08-29T19:29:39.000324Z

reading the backlog

anmonteiro 2017-08-29T19:29:56.000377Z

self-hosted may not be that tied to the concept of classpaths

dominicm 2017-08-29T19:30:12.000665Z

@stbgz if you're really determined, Alex suggested to me that most of maven is pointless inheritance and interfaces. And that the meat of it isn't huge. It might turn out to be simpler than it appears.

anmonteiro 2017-08-29T19:30:15.000076Z

theoretically it can load from anywhere, even from a remote connection (that’s what http://clojurescript.io does)

anmonteiro 2017-08-29T19:30:41.000371Z

we actually have an issue open to support require from node_modules

dominicm 2017-08-29T19:30:58.000158Z

@anmonteiro that's extremely intriguing. Which "we" is that?

anmonteiro 2017-08-29T19:30:59.000225Z

the CLJS compiler just passes us namespace and path

anmonteiro 2017-08-29T19:31:06.000059Z

we, as in, me

anmonteiro 2017-08-29T19:31:10.000337Z

😜

anmonteiro 2017-08-29T19:31:11.000379Z

in Lumo

dominicm 2017-08-29T19:31:33.000180Z

Are you thinking of something centred on package.json reading?

anmonteiro 2017-08-29T19:31:38.000520Z

maybe

anmonteiro 2017-08-29T19:31:47.000508Z

shouldn’t be too hard

anmonteiro 2017-08-29T19:32:02.000652Z

the CLJS compiler passes us foo/bar

anmonteiro 2017-08-29T19:32:30.000049Z

so that should be node_modules/foo/pkgjsonmain/foo/bar.cljs

anmonteiro 2017-08-29T19:32:34.000230Z

something like that

anmonteiro 2017-08-29T19:32:44.000290Z

brb

dominicm 2017-08-29T19:33:53.000557Z

I should take a look at the code.

richiardiandrea 2017-08-29T19:39:04.000119Z

@dominicm to expand a bit on that, self-host cljs allows you to pass a load-fn function that has to return the required code

richiardiandrea 2017-08-29T19:39:18.000171Z

so you could fetch that from anywhere basically

dominicm 2017-08-29T19:39:36.000190Z

When you say it returns the code, is it as a string, or a path?

dominicm 2017-08-29T19:39:56.000019Z

Must be a string. For websites.

dominicm 2017-08-29T19:43:54.000611Z

Hmm. Is there a funky way to set that in lumo? Such that I might experiment with the idea of loading from node modules?

richiardiandrea 2017-08-29T19:46:06.000492Z

sorry for the wrong link, correct -> https://github.com/anmonteiro/lumo/blob/master/src/cljs/snapshot/lumo/repl.cljs#L301

richiardiandrea 2017-08-29T19:49:29.000408Z

the problem is that most cljs packages at the moment don't pack files and publish to npm

richiardiandrea 2017-08-29T19:49:53.000496Z

still, it would be a very good thing if they did

richiardiandrea 2017-08-29T19:50:35.000425Z

for cljsjs, a boot task could produce and publish to npm together with Clojars

dominicm 2017-08-29T19:56:22.000561Z

Yeah, no way to get rid of maven at this point I think. I'm curious to know how the .net clj does dependencies

richiardiandrea 2017-08-29T19:58:06.000519Z

uhm actually I don't think packing cljsjs would make too much sense except for providing externs

richiardiandrea 2017-08-29T19:58:20.000201Z

the same dep is already an npm dep

dominicm 2017-08-29T19:59:31.000300Z

Cljsjs really doesn't make sense in lumo, nope 😂

1✌️
richiardiandrea 2017-08-29T19:59:48.000243Z

lumo-compatible packages would declare their compatibility by publishing on npm (like many already do)

dominicm 2017-08-29T20:06:59.000481Z

On my phone right now, but... https://github.com/anmonteiro/lumo/issues/241 This should work as it is. Npm supposedly has that directory on the path whilst it's running.

richiardiandrea 2017-08-29T20:14:03.000182Z

@dominicm uhm no it doesn't 😄 node does not add .node_modules/.bin in your PATH

richiardiandrea 2017-08-29T20:14:39.000610Z

.node_modules/.bin/opencollective would work

anmonteiro 2017-08-29T20:15:12.000248Z

no it wouldn’t

1👍
anmonteiro 2017-08-29T20:16:00.000267Z

scripts in package.json actually sees stuff in ./node_modules/.bin

1👍
dominicm 2017-08-29T20:18:10.000375Z

https://docs.npmjs.com/misc/scripts#path

anmonteiro 2017-08-29T20:19:00.000165Z

the fact that you can’t execute opencollective is because it’s listed in devDependencies, not dependencies

richiardiandrea 2017-08-29T20:19:09.000476Z

uhm...yes you folks seem right...but I get an error...it must be something else then

anmonteiro 2017-08-29T20:19:13.000669Z

you shouldn’t be installing node from github:anmonteiro/lumo anyway

richiardiandrea 2017-08-29T20:19:19.000062Z

ah cool

anmonteiro 2017-08-29T20:19:20.000337Z

I explained it to you yesterday

richiardiandrea 2017-08-29T20:19:22.000158Z

that is why

richiardiandrea 2017-08-29T20:19:28.000406Z

yes just curious

anmonteiro 2017-08-29T20:19:29.000507Z

that’s not Lumo’s package.json

richiardiandrea 2017-08-29T20:19:43.000540Z

I was not the one asking 😄