Clojurians
#boot
<
2016-03-07
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

sooheon03:03:19

Is [this](https://github.com/upworthy/heroku-buildpack-boot) the recommended heroku buildpack for boot? When using it and also using the explicit target task, builds fail with the following:

remote: -----> Clojure (Boot) app detected
remote: -----> Installing OpenJDK 1.8...done
remote: -----> Using cached version of boot
remote: -----> Copying boot... done
remote: -----> Running: boot build
remote:        2016-03-07 04:02:17.490:INFO::main: Logging initialized @9187ms
remote:        clojure.lang.ExceptionInfo: Unable to resolve var: target in this context
remote:            data: {:file "/tmp/boot.user6304407250630311101.clj", :line 9}
remote:        java.lang.RuntimeException: Unable to resolve var: target in this context
remote:                       ...               
remote:        boot.main/-main/fn  main.clj: 161
remote:           boot.main/-main  main.clj: 161
remote:                       ...               
remote:          boot.App.runBoot  App.java: 242
remote:             boot.App.main  App.java: 356
remote: 
remote:  !     Push rejected, failed to compile Clojure (Boot) app
remote: 

sooheon04:03:20

I can confirm that using the implicit target dir, the heroku deploy will work.

seancorfield04:03:18

I was just asking about running Boot on Heroku the other day! Thank you!

seancorfield04:03:11

Hmm, and, yeah, it does it by downloading Boot as part of the run/setup stuff... Fair enough.

sooheon06:03:50

Sure :) I was pointed to this buildpack from someone else on this channel as well. Still don’t know why the explicit target directory causes the build to fail, and how fix it :p

inhortte13:03:12

Does anyone know of any examples out there of using speclj with boot?

mobileink15:03:05

Hi folks. Thinking about the way tmp-dir! etc. are used relative to the Fileset concept this weekend it occurred to me that Boot could use another abstraction: workspaces. So I wrote a little blog article about it: http://blog.mobileink.com/2016/03/workspaces-boots-missing-abstraction.html

dm315:03:48

nice simple_smile a good thing to think about. I'd be wary of adding a limiting (and ultimately a leaky) abstraction hiding the filesystem, but the concept of a workspace seems useful

mobileink15:03:09

yeah, if you really wanted to work out a complete ws abstraction you'd definitely want to do it as a library with boot as the backing engine.

mobileink15:03:06

hard to see how far to go with abstracting the entire fs api but it would be interesting

micha15:03:38

one note is that add-resource doesn't really have any relation to tmp-dir! -- add-resource just adds the contents of any directory to the fileset

mobileink16:03:33

@micah: so you can add anything from the filesystem directly to the fileset? I guess I was under the impression that you have to use a temp dir under boot's control. but maybe that's just a Best Practice for stuff you create? it does make sense to allow any dir - you could have a parameter that points to some dir outside of your project tree.

mobileink16:03:53

sorry misspelled your name

micha16:03:56

i think you may be missing one part of the process

micha16:03:20

when you do add-resource etc, it is creating a new fileseet object

micha16:03:29

but it's also importing the files into the blob storage

micha16:03:52

so the references in the immutable fileset object it creates are valid

micha16:03:12

but it doesn't use the files in the directory you are adding

micha16:03:27

it copies those files into the blob storage where they become anonymous blobs

micha16:03:32

i can't type today

mobileink16:03:11

right, blob store == snapshot, more or less?

micha16:03:18

not exactly

micha16:03:24

blob storage is like in git

micha16:03:51

just a content-addressed bucket containing any file that could exist in the "tree" or working set

micha16:03:09

the immutable fileset object is a tree of references into that space

micha16:03:16

pointers basically

micha16:03:31

path string -> blob pointer

mobileink16:03:05

right, but copying files into the blobstore, not a snapshot?

mobileink16:03:19

of the file content, at least

micha16:03:24

the blob store contains all files from all snapshots

micha16:03:42

a specific snapshot is a mapping of path string to blob id

micha16:03:02

but the blob shared by all snapshots

micha16:03:05

just like in git

micha16:03:17

a specific commit may only reference certain files

micha16:03:29

but the blob store contains even deleted files, etc

micha16:03:33

you can only add to it

micha16:03:46

you can't change anything in there, or remove anything

micha16:03:56

and that property is key

micha16:03:19

that ensures that any snapshot ever made contains enough information to recreate the working tree

mobileink16:03:06

ok, i see what you're saying. its more like add-foo takes a snapshot and puts that in the blobstore, not that the blobstore is a snapshot

micha16:03:08

git is more efficient because it stores blobs at a more granular level, chunks of files rather than whole files

micha16:03:34

like suppose you have a directory with afile in it, foo.txt

micha16:03:48

and that file contains the line "hello"

micha16:03:20

when you do (add-resource fileset the-dir)

micha16:03:46

that iterates over all the files in the-dir, which is really only foo.txt in this case

micha16:03:26

for each file it computes the blob id, which would be b1946ac92492d2347c6235b4d2611184.1457367675 or something like that

micha16:03:47

eg. md5 hash of the file contents plus last modified time

micha16:03:51

as a long

micha16:03:37

then if there is no blob file with that id already (i.e. no file in blob store directory with that name)

micha16:03:47

then it copies the file into blob store

micha16:03:49

when it returns a new fileset object, the fileset object will have like {:tree {"foo.txt" "b1946ac92492d2347c6235b4d2611184.1457367675"}} basically

micha16:03:03

simplifying a bit for clarity of course

mobileink16:03:33

that pretty much matches what my mental model is except i didn't know about the blob id stuff. but that's all implementation detail, i think. for the noob, i think the key point is that doing add-* on a dir (which may or may not be a "workspace") means that boot stores the state of the dir at that point in time, using its implementation mechanism (which happens to be a blobstore, but could be sth else) and the new Fileset reflects that state. Effectively taking a "snapshot" of it and squirreling it away. Using "snapshot" loosely, to mean "capture state".

micha16:03:53

yeah the blob store is essentially the union of all files that are part of any fileset

micha16:03:02

made anonymous

mobileink16:03:11

so you could add-resource a dir in the FS and then immediately delete it, but that would not effect boot - the blobstore;Fileset would still have it as it was when you did add-resource?

micha16:03:17

a specific fileset is a mapping of paths to objects in the blob store

micha16:03:41

yes that's correct

micha16:03:56

the blob store needs to be append-only, so we copy things into there

micha16:03:12

so you can delete the original direcotry no problem

mobileink16:03:44

actually that would be a nice little experiment for newcomers: run a task that adds a dir to the fileset, run (wait) for 5-10 secs, go delete the dir, then watch the pipeline work anyway.

micha16:03:57

yep that totally should work

mobileink16:03:15

related question: you could also use any dir as a workspace, right? you don't have to use tmp-dir!, you could create your own workspace dir anywhere and use it to make stuff to add to the fileset. so `tmp-dir! is just a convenience?

micha16:03:36

yep, exactly right

mobileink16:03:23

and just to be clear: the dir create by tmp-dir! is just a dir, no immutability. it should be safe, since only boot knows its there, but you can add/change/delete at will

micha16:03:35

yep exactly

micha16:03:10

the only reason there is a function for it in boot core is because the lifetime of temp files is a little weird when you're building stuff

micha16:03:24

like you'll notice that clojure uses temp files

micha16:03:29

like in the repl especially

mobileink16:03:33

i wonder if having immutable workspaces would add enough value to justify the cost of dev

micha16:03:48

and this is a PITA because if there is a crash the temp file is deleted when the JVM exits

micha16:03:59

so you can't debug very easily

micha16:03:12

because the line number is pointing to a temp file that has been cleaned up already

micha16:03:43

with boot if you use tmp-dir! you get a temp directory whose contents will not be deleted when the JVM exits, so you can still look at those files to debug

micha16:03:54

instead they are deleted the next time you run boot

micha16:03:58

in that project

richiardiandrea16:03:15

@micha a question, if I am in a boot in boot session, and call add-jar, exploding the content, where is this content going

richiardiandrea16:03:35

a better question is, do I have tmp folder for boot in boot as well?

micha16:03:00

yes, they should be completely separate

micha16:03:03

@richiardiandrea:

richiardiandrea16:03:33

because I sporadically receive exception when I execute tests in parallel that are importing/copying stuff over

micha16:03:58

that's handled by the boot.core/init! function, it creates a new temp registry thing

richiardiandrea16:03:02

maybe it is on my side but I wanted to ask first, I should be able to delete and add stuff isolating every boot in boot session right?

micha16:03:04

like how do you mean?

richiardiandrea17:03:34

well no delete sorry, I will show you

richiardiandrea17:03:42

it is a simple add-jar but throws from time to time when in parallel: https://github.com/arichiardi/boot/commit/1dc56241ae0009cb04130d732f295c2e8da1949a

richiardiandrea17:03:59

but again, I just wanted to be sure to have the same kind of feature in boot-in-boot

micha17:03:04

yeah the temp registries should be separate

sekao18:03:39

hey all, i made a sample project showing how I do full-stack (clj + cljs) projects using boot. let me know if you have any suggested improvements: https://github.com/oakes/full-stack-boot-example

vectorsize18:03:33

hello everyone! I’m having strange problems when installing boot on my macbook… after installing via brew install boot-clj and running boot, either by calling boot -v or boot -h first run goes fetch ... which seems normal, but when called again (also by typing boot -h) it will attempt to download the jar again from github and then fail with the following error: clojure.lang.ExceptionInfo: Could not locate boot/task/built_in__init.class or boot/task/built_in.clj on classpath. any ideas? I’m new to clojure ^^ tried adding ~/.m2 to the path or even ~/.boot … but no luck so far

martinklepsch18:03:43

@vectorsize: does boot -V work?

vectorsize19:03:09

yes @martinklepsch !

vectorsize19:03:33

#
#Mon Mar 07 19:59:51 CET 2016
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.7.0
BOOT_VERSION=2.5.5

vectorsize19:03:59

also tried manually installing v2.6.0-SNAPSHOT and fiddle around inside ~/.boot but nada

martinklepsch19:03:33

try rm -rf ~/.boot (unless your profile.boot is important to you)

vectorsize19:03:05

its not important for now, didnt get anything done so far haha

vectorsize19:03:27

tried from your earlier comment here rm -rf ~/.boot/cache ~/.boot/boot.properties

vectorsize19:03:48

without any luck actually, just goes trhough the same process again

martinklepsch19:03:32

try wiping the complete folder, not just the ~/.boot/cache dir

vectorsize19:03:00

aghh same with rm -rf ~/.boot gonna try fulll path

martinklepsch19:03:20

full path? dont delete your home dir! 😉

vectorsize19:03:41

haha not today, not in that kind of mood 😉

micha19:03:07

also which boot

vectorsize19:03:11

damn it same

vectorsize19:03:32

which boot is /usr/local/bin/boot @micha

vectorsize19:03:55

mm shouldnt this be Cellar or similar if its the homebrew?

micha19:03:26

does it exist in Cellar?

martinklepsch19:03:44

I have it via homebrew, path is the same

vectorsize19:03:55

oh yes its a symlink to /usr/local/Cellar/boot-clj/2.5.2/bin/boot

martinklepsch19:03:52

next idea would be checking checksums of jars

vectorsize19:03:16

ok that sounds like something I would never do haha

vectorsize19:03:43

u mean check if the jars being called are the good ones @martinklepsch ?

martinklepsch19:03:10

it's unlikely they're wrong but there have been stange things with githubs release caching/downloads before

martinklepsch19:03:23

and I don't have any better ideas ¯\(ツ)

vectorsize19:03:32

I can also go download them manually and replace them

vectorsize19:03:44

yeah I know this is kinda strange…

vectorsize19:03:51

ok gonna try more things, thanks a lot for the suggestions @martinklepsch and @micha lemme know if u come up with something!

vectorsize19:03:13

I’ll keep u posted if I find what was wrong

vectorsize19:03:28

btw after installing twice it always gets stuck with Could not locate boot/aether__init.class or boot/aether.clj on classpath. dont know if it’s something obvious with path that Im missing

micha19:03:07

that's very suspicious

micha19:03:31

those classes should be in boot.jar

vectorsize19:03:43

thats what I thought

micha19:03:58

can you run boot from a new, empty directory please?

micha19:03:15

like maybe there is a boot.properties file in the directory you're in

micha19:03:21

that is somehow interfering

vectorsize19:03:03

i’m afraid it’s the same…

vectorsize19:03:32

was operating from ~ before but same from a newly created dir

micha19:03:18

which version of java

micha19:03:21

are you using?

vectorsize19:03:43

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

micha19:03:50

that looks ok

vectorsize19:03:59

damn it i was hoping it didnt haha

micha19:03:45

ls ~/.boot/cache/lib/2.5.5/aether.uber.jar

micha19:03:53

does that exist?

vectorsize19:03:29

yes it does and tried adding ~/.boot/cache/lib/2.5.5/ to the path without luck also

micha19:03:39

ok what about this one

micha19:03:42

ls ~/.boot/cache/bin/2.5.5/boot.jar

micha19:03:02

ok that's good

micha19:03:14

now from an empty directory try this

micha19:03:27

BOOT_VERSION=2.5.5 boot -h

vectorsize19:03:48

grrrr Could not locate boot/aether__init.class or boot/aether.clj on classpath.

micha19:03:00

ok how about this:

micha19:03:10

md5sum `which boot`

vectorsize19:03:14

no md5sum in my machine hold on

martinklepsch19:03:37

@vectorsize:

md5 `which boot`

vectorsize19:03:55

cool thanks @martinklepsch !

vectorsize19:03:16

MD5 (/usr/local/bin/boot) = 123f9f5658fdf1e967ba08c502c56a82

micha19:03:26

hm same here

vectorsize19:03:36

hahaha this is the crazy bug

micha19:03:34

what about md5 ~/.boot/cache/bin/2.5.5/boot.jar

vectorsize19:03:00

MD5 (/Volumes/Home/.boot/cache/bin/2.5.5/boot.jar) = 569b593d4d614ce98c114bdcc77e092d

micha19:03:15

same here

micha19:03:53

and finally md5 ~/.boot/cache/lib/2.5.5/aether.uber.jar

vectorsize19:03:35

MD5 (/Volumes/Home/.boot/cache/lib/2.5.5/aether.uber.jar) = 4de2768cc44c42124d4c09a91158f083

micha19:03:26

same here

mobileink19:03:50

echo your classpath?

vectorsize19:03:19

lot of shit in there haha

mobileink19:03:02

are you in the footwear biz? maybe there's some other boot thete. ;)

vectorsize19:03:20

hahaha unfortunately not

mobileink19:03:41

try in a new terminal with minimal cp

vectorsize19:03:10

I tired another terminal too @mobileink

vectorsize19:03:15

but lets redo it

micha19:03:05

can you paste a full strace?

mobileink19:03:26

gotta be a cp conflict of some kind?

vectorsize19:03:42

vectorsize: ~                                                            
→ rm -rf /Volumes/Home/.boot
                                                                                
vectorsize: ~                                                            
→ boot
Downloading ...
Running for the first time, BOOT_VERSION not set: updating to latest.
#
#Mon Mar 07 20:30:42 CET 2016
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_VERSION=2.5.5
BOOT_CLOJURE_VERSION=1.7.0
                                                                                
vectorsize: ~                                                            
→ boot
Downloading ...
   clojure.lang.ExceptionInfo: Could not locate boot/task/built_in__init.class or boot/task/built_in.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.
    data: {:file
           "/var/folders/xt/bp8zrtt9245gsdg0wd5m10s00000gn/T/boot.user4245230599665512710.clj",
           :line 1}
java.io.FileNotFoundException: Could not locate boot/task/built_in__init.class or boot/task/built_in.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.
                             ...                                        
            clojure.core/load/fn                          core.clj: 5866
               clojure.core/load                          core.clj: 5865
                             ...                                        
           clojure.core/load-one                          core.clj: 5671
        clojure.core/load-lib/fn                          core.clj: 5711
           clojure.core/load-lib                          core.clj: 5710
                             ...                                        
              clojure.core/apply                          core.clj:  632
          clojure.core/load-libs                          core.clj: 5749
                             ...                                        
              clojure.core/apply                          core.clj:  634
                clojure.core/use                          core.clj: 5843
                             ...                                        
boot.user/eval55/loading--auto--  boot.user4245230599665512710.clj:    1
                boot.user/eval55  boot.user4245230599665512710.clj:    1
                             ...                                        
              boot.main/-main/fn                          main.clj:  192
                 boot.main/-main                          main.clj:  192
                             ...                                        
                boot.App.runBoot                          App.java:  390
                   boot.App.main                          App.java:  467
                             ...                                        
                       Boot.main                         Boot.java:  258

vectorsize19:03:55

what do you guys mean by cp ?

mobileink19:03:58

osx? which java are you using?

micha19:03:02

so the main question is...why is it downloading boot.jar

micha19:03:21

why is it downloading versin 2.5.2 especially

vectorsize19:03:32

osx yes @mobileink and here’s the version:

java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

micha19:03:50

ah 2.5.2 is the fallback default

vectorsize19:03:09

“why is it downloading versin 2.5.2 especially” didnt even realize that version missmatch

vectorsize19:03:29

but then it says it’s the v2.5.5 when called

micha19:03:41

yeah that all looks ok

micha19:03:53

if you run it now it won't try to download them again right?

mobileink19:03:14

is there some kind of home brew config file that is corrupt?

vectorsize19:03:26

here’s my path in case it helps:

/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin:
/Volumes/Home/.nvm/v0.11.9/bin:
/opt/X11/bin:
/usr/local/MacGPG2/bin:
/usr/local/Cellar/python3/3.4.3_2/bin:
/usr/local/rvm/bin:
/Volumes/Home/.rvm/bin:
/usr/local/bin/:
/usr/local/git/bin:
/Volumes/Home/.m2:
/Volumes/Home/.boot/lib/2.6.0-SNAPSHOT:
/usr/local/Cellar/pcre/8.32/bin:
/Volumes/Home/Dropbox/Documents/unix/scripts:
/Volumes/Home/pear/bin:
/Applications/Postgres.app/Contents/Versions/9.3/bin:
/usr/local/go/bin:
/Volumes/Home/Dev/gocode/bin:
/usr/local/sbin:
/usr/local/heroku/bin:
/Applications/Postgres.app/Contents/Versions/9.4/bin:
/Volumes/Home/node_modules/.bin:
/usr/local/share/npm/bin:
/Volumes/Home/Library/Developer/SDKs/depot_tools:
/Applications/VirtualBox.app/Contents/MacOS/:
/usr/local/bin/depot_tools:
/Applications/Neo4j Community Edition.app/Contents/Resources/app/bin:
/Applications/Neo4j Community Edition.app/Contents/Resources/app/jre/bin

vectorsize19:03:42

I upgraded homebrew and reinstalled boot from scratch also

micha19:03:59

you have the same boot executable as i have

micha19:03:14

and your boot.jar was the same as mine too

vectorsize19:03:28

the files are the same yes…

mobileink19:03:53

hmm. my chief suspect is homebrew, Watson.

vectorsize19:03:12

should I install via the bash instead

micha19:03:46

do you have BOOT_JVM_OPTIONS set?

mobileink19:03:58

if that works it would tell us sth.

micha19:03:00

like echo $BOOT_JVM_OPTIONS

vectorsize19:03:06

nop to BOOT_JVM_OPTIONS

vectorsize19:03:12

nothing is printed

micha19:03:23

it's weird because if you download boot.sh you will just get the same thing you already have

micha19:03:42

does homebrew make any other settings?

mobileink19:03:47

homebrew has a bunch of security stuff that can fail silently. are you running it sudo?

vectorsize19:03:19

nop homebrew doesnt allow sudo

vectorsize19:03:35

im gonna uninstall the homebrew version and try the bash

mobileink19:03:55

sorry, meant su. I usually su to administer when I run homebrew stuff.

mobileink19:03:57

I think. going from memory ;)

vectorsize19:03:34

never tried with su actually

vectorsize19:03:14

so, no homebre anymore involved

vectorsize19:03:25

deleted ~/.boot

vectorsize19:03:39

downloaded boot.sh from github

vectorsize19:03:57

copied it to /usr/local/bin as boot

vectorsize19:03:10

cmod it to 755

mobileink19:03:24

now that's weird. this definitely deserves a place on the boot - fails list. ;)

vectorsize19:03:44

same procedure, downloads 2.5.2

vectorsize19:03:06

on second invocation downloads 2.5.5

mobileink19:03:19

echo $CLASSPATH?

vectorsize19:03:20

and fails Could not locate boot/task/built_in__init.class or boot/task/built_in.clj on classpath. etc

vectorsize19:03:03

echo $CLASSPATH doesnt print anything its all in $PATH for me, does it have to be $CLASSPATH? :O

micha19:03:24

haha no that's good

vectorsize19:03:46

got worried for a sec that the mistake was that lol

vectorsize19:03:24

$PATH is:

/usr/bin:
/bin:
/usr/sbin:
/sbin:
/usr/local/bin:
/usr/X11/bin:
/Volumes/Home/.nvm/v0.11.9/bin:
/opt/X11/bin:
/usr/local/MacGPG2/bin:
/usr/local/Cellar/python3/3.4.3_2/bin:
/usr/local/rvm/bin:
/Volumes/Home/.rvm/bin:
/usr/local/bin/:
/usr/local/git/bin:
/Volumes/Home/.m2:
/Volumes/Home/.boot/lib/2.6.0-SNAPSHOT:
/usr/local/Cellar/pcre/8.32/bin:
/Volumes/Home/Dropbox/Documents/unix/scripts:
/Volumes/Home/pear/bin:
/Applications/Postgres.app/Contents/Versions/9.3/bin:
/usr/local/go/bin:
/Volumes/Home/Dev/gocode/bin:
/usr/local/sbin:
/usr/local/heroku/bin:
/Applications/Postgres.app/Contents/Versions/9.4/bin:
/Volumes/Home/node_modules/.bin:
/usr/local/share/npm/bin:
/Volumes/Home/Library/Developer/SDKs/depot_tools:
/Applications/VirtualBox.app/Contents/MacOS/:
/usr/local/bin/depot_tools:
/Applications/Neo4j Community Edition.app/Contents/Resources/app/bin:
/Applications/Neo4j Community Edition.app/Contents/Resources/app/jre/bin
@mobileink:

mobileink19:03:24

haha I just wondered if your she'll was putting crap on the cp.

vectorsize19:03:06

the crap is all mine I think 'haha

micha19:03:13

very extremely puzzling

vectorsize19:03:46

my only guess right now is if this is because my home is another drive, which shouldnt be a problem but who knows

vectorsize19:03:03

my ~ is /Volumes/Home

vectorsize19:03:40

I managed in my other computer which has a simple ~ setup and it works just fine

micha19:03:03

what if you do BOOT_LOCAL_REPO=/Volumes/Home/m2 boot -h

mobileink19:03:42

Aha! Watson, by Jove, jolly good!

vectorsize19:03:22

BOOT_LOCAL_REPO=/Volumes/Home/.m2 boot -h is installing stuff...

mobileink19:03:28

I'll bet there an 'ln' involved.

vectorsize19:03:20

still dling stuff #fingerscrossed

vectorsize19:03:26

ok finished installing now I call it and nothing…. no error no nothing

micha19:03:51

you're setting the BOOT_LOCAL_REPO env var when you call it right?

mobileink19:03:55

hahaha. sob!

vectorsize19:03:22

BOOT_LOCAL_REPO=/Volumes/Home/.m2 boot -h and boot -h

vectorsize19:03:33

and returns without output

micha19:03:16

next step is to build boot locally

micha19:03:30

then you can insert printfs and breakpoints etc

vectorsize19:03:31

ok yes I can do that

micha19:03:44

it's failling in boot.main/-main

micha19:03:08

well it's actually failling when it does load-file on the generated boot.user namespace

micha19:03:19

but that's happening in boot.main/-main

vectorsize19:03:02

allright then!! thanks a lot @micha and @mobileink I’m gonna take a break now I think been trying for 3 hours now, just to have a clojurescript hello world running lol

mobileink19:03:14

@micha doesn't boot use hard links in various places? grasping at straws here...

micha19:03:24

@mobileink: yep

micha19:03:00

hard links can't be used across filesystems

micha19:03:12

but you would usually get a different exception then

mobileink19:03:36

memory failing but couldn't that cause problems when you have stuff on different vols?

vectorsize20:03:10

yeah it’s not the first time something strange happens and I wonder if my home setup could be the problem

micha20:03:37

it's weird how it gets so far along in the bootstrapping process before failing

mobileink20:03:44

@vectorsize troublemaker! ;)

micha20:03:05

like it was able to use all the boot namespaces that were needed to bootstrap maven and get boot.main loaded

micha20:03:14

download deps etc

micha20:03:23

it's just at the very last step that it fails

vectorsize20:03:12

honestly I don’t know enough to make any smart comments at this point

micha20:03:36

do you have a guest user on your mac?

micha20:03:51

like the "enable guest user" or whatever it's called

micha20:03:02

incognito mode for osx users

vectorsize20:03:07

there is a guest user

micha20:03:15

you could try downloading boot as that user

micha20:03:18

and see if it works

vectorsize20:03:28

doest seem actif now

vectorsize20:03:48

I have another system in an external drive also could that be conflicting?

vectorsize20:03:53

gonna eject and try

micha20:03:24

basically start with the simplest, most standard configuration

micha20:03:31

so like log out and log back in as guest user

micha20:03:45

download boot.sh from github and see if you can run it

vectorsize20:03:05

yeah now all tests are from that one

vectorsize20:03:29

okey yes I will try that next time

vectorsize20:03:41

sounds easier than recompiling

vectorsize20:03:17

do you want me to open an issue @micha with a description of it as it is right now?

vectorsize20:03:05

just saw ur one of the ones merging PRs in the repo simple_smile

micha20:03:18

sure, it'll be useful to have a record of this weirdness

vectorsize20:03:29

probably the author? sorry haha

micha20:03:31

even if it's not a bug

vectorsize20:03:48

ok I will do that

mobileink20:03:02

guess: there's a hard link in there that only gets used in just the right situation. talking out my hat.

micha20:03:19

yeah hard links are definitely suspect here

mobileink20:03:21

so the download works and put some stuff in one volume and some in another. when you run boot there's a hard link that chokes maybe.

vectorsize20:03:02

…sounds logic @mobileink

vectorsize20:03:31

ok issue issued 😄

vectorsize20:03:51

thanks again everyone for your help

mobileink20:03:57

aha! read your err msg- where is /var?

vectorsize20:03:40

“where is /var?” sorry how do you mean?

vectorsize20:03:00

i see what you mean

vectorsize20:03:04

yes it’s in the main drive

vectorsize20:03:39

at least I think so @mobileink

vectorsize20:03:20

yes main drive

mobileink20:03:29

which volume?

vectorsize20:03:04

Machintosh HD/private/var so not the same as /Volumes/Home

mobileink20:03:15

I think your error msg is indicating boot wants a file in /var but can't find it.

vectorsize20:03:37

could I try a quick patch with a symlink @mobileink ?

vectorsize20:03:06

not sure how to go about it

vectorsize20:03:27

if I symlink /var in my home drive perhaps

vectorsize20:03:44

or should it be the other way around rather

mobileink20:03:53

gosh, not sure. been a while since I monkeyed with this sort of stuff. boot is looking for /var, so ~/var would prolly not help.

vectorsize20:03:33

no thats what I though

vectorsize20:03:05

is /var/folders/xt/bp8zrtt9245gsdg0wd5m10s00000gn/T/boot.user5389103512016161084.clj a tmp file?

mobileink20:03:37

you'd have have to remap /var to the other vol, and I forget how to do that at the moment.

mobileink20:03:24

and it might be risky if you don't really know what your doing.

vectorsize20:03:08

yeah I don’t wanna break the rest of stuff

vectorsize20:03:39

ok off to get something to eat now, ‘night yall

mobileink20:03:20

'mount' is the command, I think.

vectorsize20:03:44

haha won’t try that tonight, who’s the trouble maker now 😛

mobileink20:03:55

Moi, Mon ami! Bwahahaha!