This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-08-19
Channels
- # admin-announcements (14)
- # architecture (1)
- # beginners (21)
- # boot (301)
- # clojure (93)
- # clojure-brasil (56)
- # clojure-india (4)
- # clojure-italy (11)
- # clojure-japan (25)
- # clojure-russia (16)
- # clojure-sg (1)
- # clojure-uk (5)
- # clojurescript (64)
- # clojurex (4)
- # clojutre (7)
- # cursive (18)
- # datascript (35)
- # datomic (212)
- # editors (27)
- # emacs (38)
- # events (9)
- # funcool (21)
- # hoplon (105)
- # jobs (2)
- # ldnclj (41)
- # ldnproclodo (4)
- # liberator (89)
- # luminus (5)
- # off-topic (32)
- # om (39)
- # onyx (1)
- # re-frame (9)
- # reactive (1)
- # reagent (34)
- # testing (42)
- # yada (4)
Am I missing something with aot + boot? Cloning https://github.com/adzerk-oss/boot-uberjar-example and running boot repl
+ (require ‘my-namespace)
throws java.lang.RuntimeException: Unable to resolve symbol: my-namespace in this context
cc @alandipert ^^
i think something is eating your quote
the quote on 'my-namespace'
that is
I ask because I’m experiencing the same issue in a different project. Wondering if perhaps a “launch” ns would be more expedient and avoid this issue.
what does this do? boot repl -e "(do (require 'my-namespace) (println (resolve 'my-namespace/-main)) (System/exit 0))"
it feels like a tooling issue, as the error message you showed is that for any unbound symbol
tmp/boot-uberjar-example ✪ ▸ boot repl -e "(do (require 'my-namespace) (println (resolve 'my-namespace/-main)) (System/exit 0))" nREPL server started on port 61349 on host 127.0.0.1 - <nrepl://127.0.0.1:61349> REPL-y 0.3.5, nREPL 0.2.8 Clojure 1.6.0 Java HotSpot(TM) 64-Bit Server VM 1.8.0_20-b26 Exit: Control+D or (exit) or (quit) Commands: (user/help) Docs: (doc function-name-here) (find-doc "part-of-name-here") Find by Name: (find-name "part-of-name-here") Source: (source function-name-here) Javadoc: (javadoc java-object-or-class-here) Examples from http://clojuredocs.org: [clojuredocs or cdoc] (user/clojuredocs name-here) (user/clojuredocs "ns-here" "name-here") clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: Unable to resolve symbol: my-namespace in this context, compiling:(my_namespace.clj:1:1) java.lang.RuntimeException: Unable to resolve symbol: my-namespace in this context #<Namespace user> Error loading namespace; falling back to user nil user=>
is that in boot-uberjar-example or the project you're seeing the issue in?
curious because that prints out #'my-namespace/main
for me
can you do ye olde boot -V
?
ah, that might be it - you should upgrade your boot.sh
you want app version 2.2.0
it's in homebrew now, if you're on mac
blow away your existing install and brew install boot-clj
and you should be good to go
FYI, straight up brew install boot-clj requires a boot -u
afterwards (it is just 2.0.0 for BOOT_VERSION to start)
With everything at 2.2.0 it works. With the as-installed brew version, it was the existing behavior I was seeing.
good call, i think that's probably because you had an existing $HOME/.boot/boot.properties
ok great!
yes unfortunately the 2.2.0 core isn't compatible with pre-2.2.0 App
a mistake we won't make again moving forward
@avey_q: hm, maybe fiddle with BOOT_JVM_OPTIONS? or see if they set JAVA_OPTS
have you contacted them yet about it?
Not yet, I’ve played with JAVA_OPTS in a previous go, but I will try fiddling with BOOT_JVM_OPTIONS for a bit. Haven’t contacted them yet.
@avey_q: care to add what you set it to to the JVM options wiki page? thanks in advance!
@alandipert: Are you going as well?
@danielsz: unfortunately no
@alandipert: Oh, too bad.
I'm in Europe at the moment, and I really would like to go. But it depends on the costs involved. I have to calculate how expensive that is going to be.
@martinklepsch: You're talking as well! Well done. Are you flying, going by train?
Flying
@juhoteperi: Are you aware of tips to keep the costs down when going to Clojutre?
@danielsz: where are you currently?
Not sure if Ryanair is currently flying directly to Tampere (and from where)
@juhoteperi where are people going to stay?
@danielsz: @micha and @raywillig are planning on sharing one (afaik). I already booked one for me and my girlfriend
http://www.omenahotels.com/ Is relatively cheap hotel chain
There are a bunch of 60€/night houses on airbnb that can accomodate 3+ people
I guess cheapest way to get from Helsinki airport to Tampere is by bus
we’re also flying to helsinki fwiw
@juhoteperi: there's also a train, right?
@martinklepsch: Oh, really?
yeah, many more flights, train/bus is cheap
https://www.airbnb.de/rooms/6903438?checkin=09.09.2015&checkout=13.09.2015&guests=4
I think helsinki with return was 90p.p. whereas Tampere was like 150
@martinklepsch: Ah, so that's it. I understand.
@danielsz: any plans to visit Berlin?
There’s train station at Helsinki airport now and it’s 1h 30min to 2h with 1 transfer to Tampere. Looks like prices are from 18e to 30e.
@martinklepsch: Actually, I might absolutely do that.
sweet! depending on when you’d come I might have a spare room as well
@martinklepsch: Thank you, that is very kind of you. I'll definitely let you know as soon as I make my plans.
@juhoteperi Are there many Bromptons in Tampere?
Don’t know about Bromptons. There are city bikes which I think are available to tourists.
#C08BDAFEE channel is probably better place for planning
@danielsz: that bike looks cool. it is very i light i presume?
@alandipert: It's the best thing ever, but it's not particularly light. 12kg.
@alandipert: It's British engineering. But it's available in the US.
@alandipert: You should have Adzerk buy one for each employee.
it somehow looks very british
pennyfarthing-esque
@alandipert: Haha. I think I see what you mean.
@alandipert: althought the wheels are identical, small 16″ diameter
it's not very light, but u can have small wheels attached to its package carrier, so when u fold it, u can just roll it on those by pushing it via the saddle
micha: i wanted to say something like: > Brompton is the Hoplon of foldable bikes but without the previous saying it wouldn't have made much sense plus im not sure how much do u actually value apple stuff..
@onetom I'm not a native English speaker, so I might misuse the word. I meant trodden as in it has set foot on. http://dictionary.reference.com/browse/trodden
I thought I could learn to tolerate Apple/OS X by using Macbook for some time
Didn’t work 😄
My X220 broke few weeks ago so I got a Retina Macbook but I can’t install Linux on this thing and I hate the design of the machine also
@juhoteperi: u just had a shitty teacher or no teacher at all... apple is not that bad and im saying this after trying all existing window managers for linux 😉 it's not great either, i agree
@juhoteperi: linux doesn't install on that one?
Glossy display and sharp front corner especially bother me
@danielsz: Nope, this is the latest version. Few months old.
Suspend doesn’t work. WIFI works but not out of box, some problems with keyboard layout.
But I found an used X220 from net and I’ll be getting that next week 😄
@onetom: Have you tried i3 wm? It’s my favorite
X230 has the new keyboard
@juhoteperi: my favourite was evilwm, but as far as i remember i3 is a bit better
@juhoteperi: I installed linux on a macbook air with i3wm and Emacs and that's about it. Best machine ever?
I thought about getting X250 but the new low voltage processors are not even as performant as 4 year old i7 so doesn’t seem like a good deal
And I could have bought used X230 but my existing batteries wouldn’t be compatible
talking about lamma island and bikes, i just borrowed this fixed wheel one from a friend here (since i moved further away from the ferry pier): https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xpt1/v/t34.0-12/11874232_10153613980150625_1051648564_n.jpg?oh=593f96c444a707166cbfaf4e5b547560&oe=55D6BF3B&__gda__=1440121827_8707d5fc64ed84b59b56f899ce52f17f&dl=1
Could be x220 keyboard in x230, I hear that’s possible.
Looks quite hip but I prefer having gears 😄
@micha: man that backwards bicycle video is amazing
> a bicycle with no gears or brakes for your mind I’m crying 😄
Hmh, bootstrap is moving to SASS 😕
@juhoteperi: reason? any url on the topic?
yeah, the bike is quite hip indeed. i know quite a lot of people on lamma, but with this bike even more people start talking to me
Maybe it’s possible to use Sass through JNA bindings from Java
I’ll have to check if it’s possible to provide alternative import handler so that it could search for files in Java classpath
If it libsass can be properly used from Java there’s a good chance it would be faster than less4j
i hae some WIP on running sass gem in a pod for boot-sassc (which currently shells out)
Ruby Sass is the old version? Or maybe it’s up-to-date
But shelling out makes it hard to support importing files from classpath and such
@alandipert: Added note to https://github.com/boot-clj/boot/wiki/Configuring-Boot. Can you check the wording suits your fancy.
idea: we could add little emoji things next to well written/important wiki entries to highlight them
breaking change as in new binary?
unless there's a way to put some kind of info in the jar or in the java command options?
added it to the 3.0.0 milestone
@micha: an ideas why this may happen then?
jdk-8u51-macosx-x64.dmg
is the only thing I installed and looks right
user=> (System/getProperty "java.runtime.version")
amazing
"1.7.0-u60-unofficial-b30"
what @juhoteperi said
there's some command on OS X you can use to change default jre
just having proper java binary first on the path might not be enough as JAVA_HOME can point elsewhere
~ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
Strange
el capitan, lots of strange things
will try installing from a freshly downloaded dmg
crazy. still:
~ set -x JAVA_HOME (/usr/libexec/java_home -v 1.8.0_60)
~ boot repl
nREPL server started on port 55088 on host 127.0.0.1 -
REPL-y 0.3.5, nREPL 0.2.8
Clojure 1.7.0
OpenJDK 64-Bit Server VM 1.7.0-u60-unofficial-b30
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Examples from : [clojuredocs or cdoc]
(user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")
boot.user=> (System/getProperty "java.runtime.version")
"1.7.0-u60-unofficial-b30"
I’m out of ideas 😄
BOOT_JAVA_COMMAND?
does this exist?
that works
ah sweet, I just had the wiki page opened so somehow thought this might be the only place, but you’re right- awsome help texts exist
@juhoteperi: are two cljs tasks with different :ids
sets still allowed in master?
the second build doesn’t even require core.async fwiw
@juhoteperi: when just running with boot cljs
everything compiles fine.
Why do you want to run those in separate tasks?
It should work though
@juhoteperi: different optimization modes + settings
Ahmmm, there's not reason why that wouldn't work with one task... it's just not implemented now
different settings work
but optimization is only task setting currently
yeah, I can stuff all things in edn files but then for prod/dev I’d need to modify those files manually
@martinklepsch: this might be completely out-of-context, but there are some tricks you can do with edn that avoid having to hack them manually - there are some examples here: https://github.com/juxt/aero
@martinklepsch: Test project would be helpful
@juhoteperi: working on it
seems to have no correlation to dependencies used
cljs verbose output helps...
The first cljs task adds output files to fileset as resources so the seconds task sees those
But why does cljs try to compile them...
The problem is caused by https://github.com/adzerk-oss/boot-cljs/commit/6329cd19e0a9bf82e69b7f426eaa020c080740b6 probably
because it looks for all .cljs
files?
Cljs looks for all .cljs files in input folders
And now we pass all tmp-dirs in fileset to cljs compiler
We could maybe filter out directories created by other cljs tasks....
I don't think that's very neat solution but I can't think other fixes now
maybe add the :output-dir
in a different role than the ones in input-files
?
Yeah that would fix it
But I'm thinking something is probably depending on those files being available as input files
you mean for caching/fast incremental builds?
No, I mean some other tasks which want's to read the js files
@micha: Can you think of any reason why adding cljs output files to fileset as asset files would be a bad idea?
They don't need to be on classpath at least
@juhoteperi: hmm, an interesting question
@martinklepsch: Changed in master.
I wonder what happens if boot-cljs tries to do e.g. 20 cljs builds parallel 😄
I did a release of boot-cljs as everyone was already using the new version 😄
@juhoteperi: i think ultimately asset-paths is the wrong thing to use here
like i've been thinking about experimenting with separating the google closure step into a separate task
We could mark the directories created by cljs task and filter them out in other cljs tasks
But what would be best way to do the marking? Dot file in root of dir?
Oh right that should at least work
I was thinking fileset metadata but it should be filepath -> metadata so I'm not sure if that would work?
on what files?
tmp-dirs themselves don't have TmpFile records, I think?
That would make it complicated
Cljs compiler only takes list of dircectories
hm currently boot-cljs uses core/get-env :directories to get list of directories
should probably use core/input-dirs instead?
Cljs compiler needs list of all dirs where cljs sources can be found
https://github.com/adzerk-oss/boot-cljs/commit/6329cd19e0a9bf82e69b7f426eaa020c080740b6
It somewhat works without, but breaks is some cases as it won't notice that some files changed
i think we just don't support this chaining of cljs tasks until that gets fixed in cljs
I'll ask David when he get's back if there's real need to list all dirs or just the one with main ns
(let [fileset' (->> fileset (remove-when-meta [::cljs]) commit!)]
(do-cljs-compiling (input-dirs fileset'))
(->> fileset (add-compiled-with-meta tmpdir ::cljs) commit!))
would add-compiled-with-meta just add metadata directly to fileset object?
it would add the files in tmpdir to the fileset and on each thing it adds it will put meta
input-dirs doesn't list the dir if there are no files in the dir?