This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-02-09
Channels
- # announcements (4)
- # beginners (71)
- # boot (258)
- # braid-chat (7)
- # business (3)
- # cider (5)
- # cljs-dev (5)
- # cljsrn (64)
- # clojure (154)
- # clojure-canada (1)
- # clojure-poland (112)
- # clojure-russia (290)
- # clojurebridge (1)
- # clojurescript (60)
- # community-development (1)
- # core-async (25)
- # cursive (9)
- # data-science (1)
- # datomic (40)
- # editors (14)
- # events (2)
- # hoplon (2)
- # jobs (3)
- # ldnclj (51)
- # lein-figwheel (2)
- # luminus (1)
- # off-topic (5)
- # om (57)
- # onyx (29)
- # overtone (1)
- # parinfer (52)
- # portland-or (1)
- # proton (17)
- # quil (2)
- # re-frame (77)
- # reagent (1)
- # ring-swagger (20)
- # spacemacs (1)
- # test-check (4)
- # testing (13)
- # yada (1)
Trying to use http://www.martinklepsch.org/posts/why-boot-is-relevant-for-the-clojure-ecosystem.html to create a jar file in local repo with boot. No sources files in the one I'm currently generating and add-src
seems to have disappeared. I will need to exclude some .cljs files as well. I'm a bit new to boot. Is what I'm trying to do possible, where are the docs? Thx.
has anyone used boot to build rpms before; e.g. with redline rpm ?
I've read that page and 1,2,3 of 2nd edition of modern cljs. I can do boot pom jar install
and that works. Just looking for documentation for say the jar
task as to how to include/exclude files.
@mbertheau: have you tried boot -vv your-task
?
@pesterhazy: I'll try that, thanks!
@mbertheau: boot show --fileset
also is a thing
@mbertheau: put speak in the beginning of the pipeline
I think the boot-cljs-example has the right order, not sure if it should go before or after watch. likely after
@martinklepsch: speak
before cljs-test
still signals successful compilation only
@mbertheau: it's possible that it just does not work correctly. I'd suggest checking what the speak task is looking for (I think it checks for an exception) and then checking if cljs-test throws an exception on failure
also check the cljs-test issues, this might have been discussed before
How would I get a non-zero exit code from test-cljs
(`[crisptrutski/boot-cljs-test "0.2.2-SNAPSHOT"]`)?
Hi, quick question… is there some kind of option to point boot to a different build.boot file: eg:
boot -f my-build.boot jar
@thomas: there's an option to ignore your build.boot but afaik none to use a different one
@thomas: what you could to is boot -B repl
=> (load-file "my-build.boot")
=> (boot (jar))
Hello, aot question here. I need to aot compile src/main/clojure/migae/servlets.clj to build/exploded-app/WEB-INF/classes. I've studied to docs on filesets and experimented but I'm stumped. I can't even get this to work: (core/deftask compile-clj "compile clj" [] (bi/aot :all))
what's not working?
I get no output. It works from the command line, $ boot aot -a , although it puts the output in the wrong place. The fileset thing looks pretty clever but it's hard to figure out how to use. I need my output dir structure to be different from the input dir structure.
@mobileink: are you sure you have some clojure files on the classpath?
in my build.boot I have :resource-paths #{"src/main/clojure"} :source-paths #{"src/main/clojure"} I aot compile just the one file, the rest get copied
but nothing seems to work in my deftask. that's in a separate project, btw, I'm using boot watch pom jar install which seems to work just great
Separate question: to copy files where the output dir structure is different than the input dir structure, I take it that the bootish way to go is to query the input fileset, munge the paths, copy to a tmp fileset, then commit! Is that correct?
@mobileink: are you compiling a war file?
like a war is the desired result?
@alandipert Nope. servlets.clj contains some gen-class decls, so compiling it results in several .class files, but that should not make any difference I think
how are you invoking your compile-clj task?
re: your 2nd question, moving things around in the fileset can be done either the way you describe or via arguments to the sift builtin
the cljsjs packages have a lot of examples of sift usage for reference
Ok, I copied the code for the aot task and discovered it has "(core/with-pre-wrap [fs]" . change it to "(core/with-pre-wrap fs" and it works.
@alandipert: thanks, I'll look at sift. gotta run now, thanks
I spoke too soon. Now it emits the "Compiling..." message, but the output is nowhere to be found.
@mobileink: do you know about target
etc? I.e. files are not emitted to disk unless you put the target
task at the end of the pipeline
yes and no. I don't understand the relation between env entries like :target-path and filesets, e.g. output-files. for example, why is there no core/resource-files to get the stuff on :resource-paths?
Anybody seeing FileNotFound running boot today?
Downloading in thread "main" java.io.FileNotFoundException:
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1835)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at java.net.URL.openStream(URL.java:1038)
at boot.Loader.download(Loader.java:175)
at boot.Loader.install(Loader.java:219)
at boot.Loader.main(Loader.java:238)
Fresh, clean brew install of boot.@skottk: that's trying to download a very old version of boot
do you have a boot.properties
file? (in your current dir)
try deleting ~/.boot/cache
if that doesn't help wipe the whole ~/.boot
thing, this is an issue with old versions that somehow pinned the version via a file in those dirs.
@mobileink: there are two "roles" that things in fileset can have, input and output
Got that, I've been querying and dumping fileset stuff. But then why have :resource-paths etc.? Why not just :inputs and :outputs? I gather that to work with my :resource-paths, I need to filter the fileset inputs using the value of :resource-paths. Is that the correct method?
@mobileink: What do you mean "work with resource-paths"?
Usually one would just use input-files
to filter fileset for files with input role (sources and resources)
For example I might want to do something with the files in my resource directories. I guess I'm not seeing the point of having the :-paths env keys if everything gets glommed into input-files. The :-paths information gets discarded. I feel like I must not be understanding something about the design.
I think this is a good candidate for a FAQ. "What's the relationship between the :\*-paths env keys and filesets?"
Instead of boot checkout
, can I use symbolic links to source files from project B in the src paths of project A? I'm envisioning this as a lightweight alternative to the checkout feature that requires 2 JVMs.
it's cleaner to do it via the maven jar interface because that keeps the projects isolated
Typically when I break a big project into smaller parts, the smaller parts use the dependencies of the bigger one, so that feels natural.
make a function that uses the boot.pod functions to find the jar for the checkout dep and return the dependency vector
then when you declare your own dependencies in your build.boot you could merge those in
with the lein way you'd still need to reinstall the jar locally when you change the pom
Cool. In my case, project B is actually the result of refactoring project A and doesn't bring any new dependencies, so a pure symlink solution sounded quick and clean.
speaking of UNIX, that's my new obsession: https://github.com/micha/json-table
@micha I think ClojureScript can transpile to scheme that then can compile to C
I saw the project somewhere
and also it needs to be fast enough to use in the shell, which might mean calling it lots of times in a loop
so i don't want to install all kinds of things, i just want a statically linked binary on s3
like with my C implementation the json never gets converted to conses or hash-tables etc
but after using clojure for a while it's really painful to go back and try to write a real program in it
@jethroksy: It's more important to read SICP than to learn Scheme. But if you read SICP, you will know Scheme.
It would be worthless if it doesn't allow eggs, so my bet it is that it does. I'm an optimist.
my goal is to be faster than micha 😅
oh I like your company attitude guys 😄
ML vs Scheme vs C for the win! The contest is open. Rust people may want to show their muscles. Pixie people have an opportunity to show their language is actually useful in the real world. Etc. 😉
what is this all about? 😄
but what happened to "Lisp can do it!"?
I'd love to have boot running in the background so I could just pass a build request to it without having to start the jvm.
@laforge49: we had such a thing for a short while
there are issues with it, the biggest being that you can't change the CWD of a running JVM process
i don't want a new turing complete language that needs to run in a separate environment
the idea of this thing is to get the data out of nested tree format as quickly as possible
i've been doing experiments the past few weeks making statically-linked standalone binaries with CL
A fast JSON parser/tokenizer in C is http://zserge.com/jsmn.html
the smallest i could get hello world was 25mb w/ ECL
@alandipert: Tell us, please. I'm very interested.
vs. < 2mb w/ mlton
@alandipert: racket can also do this kind of stuff, much smaller binaries (2-5mb iirc)
i would be very surprised if they could be that small and be statically linked
not sure I fully understand what static linking means, maybe I'm misunderstanding
@martinklepsch: isn't dynamically linked to any shared libraries in /usr/lib... requires only a 64bit linux environment
> The output of raco exe
is meant to statically include its required modules, so it may not be what you want.
— via Stackoverflow. Disclosure: I have no idea what I'm talking about.
@martinklepsch: http://blog.sagargv.com/2014/09/on-building-portable-linux-binaries.html
If boot-cljs can’t find cljs.repl, what am I doing wrong. I am using clojure 1.7.0 and clojurescript 1.7.189
@hugod: can you explain what you're doing and what you're expecting to happen?
@hugod: just boot cljs-repl
is not sufficient for a working browser repl
@martinklepsch: I have a dev
task that invokes the cljs-repl
and cljs
tasks (among others). I’m just trying to get a cljs repl started (for react native). https://gist.github.com/54c5024113dee42a7792
@hugod: that looks correct. after running the dev
task you connect to the repl server and do (start-repl)
?
@martinklepsch: : running the task results in java.io.FileNotFoundException: Could not locate cljs/repl__init.class or cljs/repl.clj on classpath
(somewhere under boot.repl-server
and piggieback
)
can you gist the whole stacktrace? seeing piggieback
, triggers my "dependency issue" button but you pinned it so I guess that should be fine
@martinklepsch: added to the gist
@hugod: I get the same problem if I try to use the repl when there's no browser open at the page.
@hugod: don't have any suggestions right now sorry
@martinklepsch: thanks for looking