This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-09-16
Channels
- # admin-announcements (27)
- # beginners (17)
- # boot (216)
- # cider (13)
- # cljs-dev (4)
- # clojure (103)
- # clojure-berlin (2)
- # clojure-dev (18)
- # clojure-italy (14)
- # clojure-japan (1)
- # clojure-nl (4)
- # clojure-norway (1)
- # clojure-russia (8)
- # clojurescript (291)
- # clojurex (12)
- # datomic (31)
- # editors (1)
- # events (16)
- # hoplon (60)
- # jobs (1)
- # ldnclj (85)
- # luminus (15)
- # onyx (2)
- # re-frame (18)
- # reagent (36)
- # remote-jobs (3)
- # yada (3)
no, but that's what boot.sh is
not to say that we couldn't all use something like that tho - boot.sh just runs a minimal java program that downloads the rest of boot from maven
and so is able to update most of itself easily, but is not self-contained
@dave have you seen http://launch4j.sourceforge.net/ ?
it's how we make the windows boot executable
a task around that, combined with the existing uber task, could be dope
the idea is to manually manage or use your system's pkg manager to manage boot.sh
then boot.sh manages the version of boot core, the stuff from maven
boot -u updates core but not boot.sh
i think we're doing something similar with alda -- the alda
launch script is just a boot script which loads the dependency [alda "LATEST"]
and then passes any command line args to the alda.cli/-main
method
i'm not sure we want to automatically update, though -- might move to manual updates, for more flexibility
with alda it seems like it might make more sense to forego boot at runtime.. like use boot to construct a jar that is boot-free and has all deps
otherwise you pay boot startup time which is a little slower than just clojure, because it starts up pod pools
it's also a better user experience, since we're trying to make this as easy as possible for beginners -- not having to install boot first would be a big win
we've had a bunch of github issues raised by people running into boot-related issues -- the kinds of things regular clojure/jvm users are used to (having a recent enough JDK, heap space issues, etc.), but which are not as intuitive for people who just want to download alda and go
i think i'll look into writing a boot task that pairs with the uber task to create standalone executables
@dave: https://github.com/adzerk-oss/boot-ubermain is another thing to investigaet
is there an advantage to not AOT-compiling? the lein-bin task in particular requires that you AOT the main class
that's something boot-ubermain avoids
i wrote a java shim that dynamically loads clojure
the advantage to not doing it is AOT makes for all kinds of weird bugs
https://github.com/adzerk-oss/boot-ubermain/blob/master/java/adzerk/MainSploder.java does the same thing that a servlet container would do, in that it adds jars in the jar to the classpath and calls an entrypoint
@juhoteperi: I'm not the original author of lein-generate, though I do use it for Cursive. Would be great for it to be part of Boot. On my machine I called it lein-project
as that was easier for me to remember since I always think "oh, I need a lein project.clj file for cursive..."
@dave: this goes pretty far:
boot -d boot/base:2.2.0 -d boot/core:2.2.0 -d org.clojure/clojure:1.7.0 -d alda:LATEST -d adzerk/boot-ubermain:1.0.0-SNAPSHOT ubermain -m alda.cli/-main
the ubermain
task is flawed in that the resulting jar doesn't have pods/dynamic dep support... and you're using merge-env
to pull in fluid r3. if you don't do that -- and set fluidr3 as a dep in the alda build.boot -- i think ubermain could do what you want
yeah the ubermain makes a jar that starts in kind of a crippled environment
not the full boot environment, but you can work around it i bet
and with a standalone jar you can use all the existing java tooling to make .exe, etc
Re lein-generate
I think there is a link to a gist at the bottom from where I copied most of it. Later on I made some small modifications.
Can boot use latest version for dependency when not specify dependency version? such as gem of ruby
you never ever ever ever ever ever ever ever want to release artifacts with these kinds of dependencies though
i suppose you could write your own classloader but it would be fraught because objects could exist that were created from bytecode in the jar
Hi there fine folks!
I'm trying to get boot-cljs to output to a different file
is there a setting for that?
was working from the boot-cljs-example
I'm actually writing something up about the build process
is there an example I can see somewhere?
is it in your blog post?
the idea is that this is just data, which all tasks can parse and understand, and even modify
so boot-cljs uses info in there to generate the :main and :output-to settings for the cljs compiler
by modifying the edn?
and the filename main.js
is taken from the foo.bar/main
init-fn?
ah, gotcha
thanks
do you mind if I run the text I write by you when it's ready?
it's not long
I assume you don't need to put all of the namespaces in the :require
list
it will pull in transitive ones
am I right?
and can init-fns be omitted?
yes, I see
and then we'd have enough info about the context and application that boot-cljs could figure out all the compiler options on its own
that way it can automatically ensure that the html file loads the correct js file and so on
that's cool
ok, i've got the text: https://gist.github.com/ericnormand/25479189841f179e2766#file-clojurescriptboot-md
would you mind having a read?
it's supposed to be very basic
just give people an idea, mostly
of how easy it is to set it up
awesome
ah, good call
I'll just remove "built-in"
ah, right
I saw the video
very nice
I'll be linking to it this week
## [Hoplon and Javelin, WebDev Alternate Reality][1] Youtube
[1]:
Micha Niskin is making really cool stuff in an alternate reality. He
visited this reality through a portal in a finnish sauna to present the
awesomeness of Hoplon and Javelin.
I do want to write a post about Hoplon
but it's not on the schedule yet
just trying to get through the launch of ClojureScript and Om, which starts on monday
thanks
I'd love to see what could be done in terms of interactive development with the cljs-in-cljs
well, I really want to play with Hoplon
it's very compelling
there's a code editor that guides you through tdd
I've done a few posts using it
and I've got an updated version of that editor coming soon
for a small function, it compiles fast enough to do it as you type
a meteor-like system would be cool
store cljs code in one cell, the js version is a calculated cell from that
all synced to the server
yeah!
thanks!
going to strange loop micha?
@ericnormand: sorry of OT, but that eval exercise is really swell
thanks!
there's one for implementing map
and reduce
too
I hope to have more
also seeing people's answers has been enlightening
they share them in the forum I link to at the end