This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-07-08
Channels
- # beginners (52)
- # boot (230)
- # cider (67)
- # clojure (166)
- # clojure-canada (1)
- # clojure-dev (91)
- # clojure-japan (6)
- # clojure-korea (1)
- # clojure-russia (2)
- # clojure-uk (10)
- # clojurescript (222)
- # core-async (27)
- # datomic (5)
- # editors (13)
- # euroclojure (12)
- # ldnclj (10)
- # off-topic (12)
- # om (16)
- # onyx (4)
- # other-lisps (2)
- # overtone (1)
- # re-frame (4)
- # sim-testing (1)
clojure.lang.Compiler$CompilerException: java.lang.OutOfMemoryError: PermGen space, compiling:(reader.clj:800:1)
@alejandro: check out https://github.com/boot-clj/boot/wiki/JVM-Options#permgen-errors - or better, upgrade to java 8
cool, is there a way to set those for cider to pick up that environment variable in emacs?
are you on a mac?
@alejandro: assuming you export BOOT_JVM_OPTIONS=...
in ~/.bashrc
, i think you can try adding something like this to your emacs configuration:
(let ((opts (shell-command-to-string ". ~/.bashrc; echo -n $BOOT_JVM_OPTIONS")))
(setenv "BOOT_JVM_OPTIONS" opts))
which is based on http://stackoverflow.com/a/9664872i remember having a similar problem when i was on mac with different env vars and i think this is how i fixed it at the time, lemme know if it works
you may also wanna do that with JVM_OPTS
if you're using a lein-launched jvm for your nrepl client
sure! if it works for you, please don't hesitate to add it to the wiki somewhere - would be much appreciated
Hey, I'm trying to get boot-cljs-example
running, and I'm seeing this warning in the console:
WARNING: org.clojure/tools.nrepl version null is older than required 0.2.10
Connection is null
My $BOOT_HOME/profile.boot
contains this:
(require 'boot.repl)
(swap! boot.repl/*default-dependencies*
concat '[[cider/cider-nrepl "0.9.0"]
[org.clojure/tools.nrepl "0.2.7"]])
so I'm a little confused as to how to fix this.Seems happy.
[:heavy_check_mark:] org.clojure/clojure
✘ 1.7.0-RC1
org.clojure/clojurescript
:heavy_check_mark: 1.7.0
org.clojure/clojure
@zane: i tried locally, don't see the error with cider-nrepl 0.9.1 and no tools.nrepl dep in my profile.boot
oh i see it now - doing boot dev
the weasel dep is brought in dynamically by the repl task, which is why we're not seeing it with boot show
Yeah, I was doing the full boot serve -d target/ watch speak reload cljs-repl cljs -sO none
from the README.md
.
the disconcerting message appears to come from https://github.com/adzerk-oss/boot-cljs-repl/blob/master/src/adzerk/boot_cljs_repl.clj#L42-L46
and the other one is from https://github.com/adzerk-oss/boot-cljs-repl/blob/master/src/adzerk/boot_cljs_repl.clj#L162
@zane i think so
boot -d org.clojure/tools.nrepl:0.2.10 dev
is a way to check
yeah i'm not sure how i feel about the way it tries to help
unfortunately the repl is a special case when it comes to dependencies, because it needs to run at the "top level" (root project pod) in order to be useful
which is why the repl can't just run in a pod with the exact dependencies it needs
If the REPL works without -d org.clojure/tools.nrepl:0.2.10
what is the warning trying to tell me?
@zane: i think it's not a valid warning
it's trying to help you with a problem you don't have
i think it would be ok to just say boot dev
in boot-cljs-example prints out weird things
oh sweet
yes @meow has been crushing it lately
@zane: thank you anyway for your helpful intent :thumbsup:
no prob!
Not sure if this belongs in Cider room or Boot room... but I can't get boot projects to start up with cider jack in. I get "The boot executable (specified by cider-lein-command' or
cider-boot-command') isn't on your exec-path"
@aengelberg: are you on a mac? http://stackoverflow.com/a/9664872 might be relevant
Windows actually.
I should have specified. That's kinda important.
hm, i imagine it's similar
i vaguely remember a PATH config step from my windows days, in the settings somewhere - perhaps you need ot add boot to it?
My boot.exe is sitting in C:\Windows\System32. That path is also in my exec-path emacs variable (but lowercase).
(And it's in $PATH)
maybe customize-variable cider-boot-command to be boot.exe?
(it probably defaults to boot)
I can try that. But the cider code indicates that it also tries tacking on ".exe".
hm, care to link the cider code?
@aengelberg: hm, does (cider--boot-present-p)
return anything in an ielm buffer?
Sorry, not sure what you mean by IELM
<--- elisp noob
no worries, M-x ielm
an elisp repl
It returns nil.
so i gotta go, but the way i've had luck fixing these issues is by bisecting what hte mode's code does using ielm, poking things
could be a way forward, also seems like a good one to raise with the cider folk
Thanks!
@aengelberg: ok, so i think the way to fix is indeed to M-x customize-variable cider-boot-command to 'boot.exe'
This is really weird
ELISP> (executable-find "boot")
nil
ELISP> (executable-find "bootcfg")
"c:/Windows/System32/bootcfg.exe"
Both are files that are in System32
err, i take it back, i still don't know what's wrong really
And if I touch C:\bin\boot.exe
(that path is also in the variable), it does work
bizarre
The combination of the path and the filename is taboo somehow?
my suspicion would be emacs only regards files ending in .exe as executables
similar to the way on unix it only has +x stuff on it
bootcfg.exe is a thing.
oh is that boot or a windows thing that was there already?
No idea.
Given that you asked that question, probably not a boot thing 😉
oh i understand now what you meant earlier, system32 is a factor somehow
OK, here's a weird sequence of events:
I used explorer to create a new document in C:\Windows\System32, and renamed it to "athing.exe". (executable-find "athing")
returns nil.
From cmd, touch C:\Windows\System32\athing2.exe
. (executable-find "athing2") => "c:/Windows/System32/athing2.exe"
have you tried customizing cider-boot-command to be an absolute path?
no, I'll try that
except (executable-find "C:/Windows/System32/boot.exe") => nil
, so I doubt that will work
oh, true
C:\Users\Alex>ls -l C:/Windows/System32/ | grep boot
-rw-r--r-- 2 Alex Administ 3170304 Jun 10 2009 boot.sdi
-rwxr-xr-x 2 Alex Administ 81408 Jul 13 2009 bootcfg.exe
I'm not even sure how ls
is actually on my machine, but it does not see boot.exe
(I think it came with git?)
i suppose you tried putting boot.exe in C:\bin?
I almost did that, but in a panic I moved it back after realizing boot itself wasn't behaving properly after the move
It was popping open a new screen and hanging
(after I ran boot
from cmd)
bummer
now i really do gotta go 😪
Later. Thanks for the help
np, godspeed
@alandipert: and @zane: Sorry about that false nrepl warning emitted by boot-cljs-repl. The dependency management stuff needs to be reworked, but there has been talk about moving that functionality into boot itself, and also I think there is some talk about merging boot-cljs-repl with boot-cljs. I expect the false warnings to go away as part of those efforts.
@micha: Cool. It seems like other than the false warning it's doing what it's supposed to be doing.
I did some more diagnosing last night. Definitely seems like windows/system32 (as a directory) is making things difficult for Cygwin. Is there anything about boot that makes it have to be in that directory? I tried moving it to C:\bin\
but then running boot
opens up a new console, closes it, then emits the help menu as normal.
@sooheon: Mostly there were PRs that hadn't been applied that brought it current with the latest releases of its dependencies, which fixed various problems.
Other than a few minor tweaks the bulk of the work/credit goes to others that submitted the PRs
I just applied them, tested them, tweaked a few, pushed it out to clojars, closed the issues, responded to help requests, and am waiting to see if we are stable.
I’m getting a warning which I didn’t before, org.clojure/tools.nrepl version null is older than required 0.2.10
. I never required it in my .boot, but the previous version never asked for it either. Tenzing doesn’t include it either. Why is it necessary?
Plus there has been talk of restructuring things so dependency management code moves into boot proper
Other than that, the repl seems to work as expected and every problem I thought I had has been confirmed as "to be expected in a cljs REPL" by David Nolen, so, I think it's pretty solid.
If you go down the cljs repl rabbit hole there are branches for "cljs isn't clojure", "boot repl uses pods differently", nrepl, piggieback, weasel, etc.
Doc wasn’t really clear and I couldn’t figure it out from quick cli experimentation.
@estsauver: the original idea was you could have like (deftest ^:focus some-test ...)
in your tests
and then make a filter like (:focus %)
and only tests with {:focus true}
meta would run
in retrospect i think the utility is marginal and the thing is more confusing than helpful
I got cljs-repl working from nrepl but not from vim-fireplace
I guess I have to look at fireplace first to see if there is something wrong there 😄
Looks like it's hanging here:
boot.user=> (cemerick.piggieback/cljs-repl (adzerk.boot-cljs-repl/repl-env))
<< started Weasel server on ws://127.0.0.1:58338 >>
<< waiting for client to connect ... Connection is
Writing boot_cljs_repl.cljs...
deraen: should https://github.com/Deraen/vim-cider work already? I tried to use it yesterday but couldn't get it to do anything.
@mynomoto: Should work now, I had to fix two typos
Clean ns still leaves around unnecessary newlines
@juhoteperi: thanks, I will try again.
hey guys - if i’m trying to pick up some compiled js in a downstream task (ie. after boot-cljs), what’s the best way to do that?
interested in the file path - want to run a test reporter
using a pretty rickety approach to get things working: (-> fileset core/output-files (core/by-name ["hopefully-unique-name”]) (->> (sort-by :time)) last)
would there be a better way to do this? i’m pretty new to all these innards - just a little while back i wondered why i was always getting the previous runs temp file in a watch 😉
Actually know the full logical tempfile path, so just using filter with :path instead of any core wrapper
Working pretty well, just a bit anxious about coupling too hard to internals or poor performance of the fileset scan
So I have have two tasks, one that does some code gen, and one that runs that code in various engines (phantom, slimerjs, etc) with shims
And then another task which composes those tasks with boot-cljs for convenience (just builds a meta handler with comp)
Sound like a sane approach?
This way you can build N suites and run in M engines without much hassle, in a CLI composable way
Needs the compiled js to run side effects
My laptop is dead and charger at work, will upload tomorrow if you'd be up to sanity check it
Will send that by-path patch too - want a boot sticker :)
Saw Alan downplaying the filter param for boot-test, reckon that's something to leave out for a boot-cljs-test?
Also the version sniffing and warning that other cljs tasks are doing, is that a good pattern to follow for additional deps?
Focus tests might be nice, or a repeat fails only for use with watch
Tired and typing on this phone ain't fun - will ping you tomorrow for that review you've promised now ;)
I think the general consensus is that the version sniffing and warning needs to be consolidated into something closer to boot.core.
hopefully this version incompatibility dependency hell will settle down soon with cljs stuff
about the only thing I can say is that the tricky bits of functionality need to be in core so they get implemented correctly, and then the more that dependency needs can be described in data the better we'll be, rather than functions implemented in tasks like boot-cljs-repl has now.