In src, buildpods.fan compiles everything just fine. However, buildboot.fan and consequently buildall.fan doesn't quite work. I'm trying all sorts of things, but nothing quite gets it there.
It seems to be failing on the javac command:
CompileJava javac: file not found: /home/tactics/Desktop/fan/src/jfan/fan/sys/*.java Usage: javac <options> <source files> use -help for a list of possible options Error: CompileJava failed!
So I went into the build library and got some debug information. The command looked correct (it's too long to post here, but if you're interested, I still have it), but when I ran it, it still didn't work. So I randomly threw in some double quotes and bash said "ok sure!" and it compiled the .java files. This leads me to believe there may be a problem with Process.make improperly quoting things.
So having compiled the class files, I tried to run the script again. This time, it gave me:
And I have no clue where to begin on figuring this one out!
So yeah. Any help would be appreciated. I'd love to start hacking at this thing!
andyWed 16 Apr 2008
The compiler for Fan is written in Fan itself, so to rebuild the core pods (build, compiler, sys) requires a separate Fan installation.
If you notice in lib/sys.props there is a fan.runtime.substitutes property. This is used to use an alternate Fan installation in order to build those scripts.
We do our main development on Windows, so I don't think we fully support "rel switching" on Unix yet (we actually just recently wrote the scripts we have today). So unfortunately you probably won't be able to rebuild the core pods from source yet.
tacticsWed 16 Apr 2008
Crazy Windows users!
I played around with it a bunch more. I think I'm getting it close to working using two copies.
Also, I narrowed down the problem I noticed before where I thought there was a problem with Process quoting things. As a good, responsible library should, Java's ProcessBuilder class escapes the * in *.java, effectively neutering the call to javac.
I can get it to compile successfully after running the command three times in a row (third time's a charm, I guess... something to do with timestamps getting updated probably). But after it's compiled, I don't know where things end up or how to run what I just created!
tacticsWed 16 Apr 2008
Also, it seems in the above post a good portion of my text got duplicated...
brianWed 16 Apr 2008
What kind of self respecting geeks are we using Windows! Seriously I don't think we are too far from getting a clean boot build on Unix. There are two problems to fix:
That successfully compiled testNative - so should knock issue 1. I'll take a look at substitutes in the Unix scripts tonight. If I can get everything working I'll post a new build.
tacticsWed 16 Apr 2008
Yeah, that list is more or less what I figured out last night. I missed the waitFor vs. exitValue point, which explains why I kept getting IllegalBlahExceptions every other time when I ran it.
tactics Wed 16 Apr 2008
Hey, I have a few questions on building.
In src, buildpods.fan compiles everything just fine. However, buildboot.fan and consequently buildall.fan doesn't quite work. I'm trying all sorts of things, but nothing quite gets it there.
It seems to be failing on the javac command:
So I went into the build library and got some debug information. The command looked correct (it's too long to post here, but if you're interested, I still have it), but when I ran it, it still didn't work. So I randomly threw in some double quotes and bash said "ok sure!" and it compiled the .java files. This leads me to believe there may be a problem with Process.make improperly quoting things.
So having compiled the class files, I tried to run the script again. This time, it gave me:
And I have no clue where to begin on figuring this one out!
So yeah. Any help would be appreciated. I'd love to start hacking at this thing!
andy Wed 16 Apr 2008
The compiler for Fan is written in Fan itself, so to rebuild the core pods (build, compiler, sys) requires a separate Fan installation.
If you notice in lib/sys.props there is a
fan.runtime.substitutes
property. This is used to use an alternate Fan installation in order to build those scripts.We do our main development on Windows, so I don't think we fully support "rel switching" on Unix yet (we actually just recently wrote the scripts we have today). So unfortunately you probably won't be able to rebuild the core pods from source yet.
tactics Wed 16 Apr 2008
Crazy Windows users!
I played around with it a bunch more. I think I'm getting it close to working using two copies.
Also, I narrowed down the problem I noticed before where I thought there was a problem with Process quoting things. As a good, responsible library should, Java's ProcessBuilder class escapes the * in *.java, effectively neutering the call to javac.
I can get it to compile successfully after running the command three times in a row (third time's a charm, I guess... something to do with timestamps getting updated probably). But after it's compiled, I don't know where things end up or how to run what I just created!
tactics Wed 16 Apr 2008
Also, it seems in the above post a good portion of my text got duplicated...
brian Wed 16 Apr 2008
What kind of self respecting geeks are we using Windows! Seriously I don't think we are too far from getting a clean boot build on Unix. There are two problems to fix:
I started messing around with it this morning and so far these are the things I've fixed:
That successfully compiled testNative - so should knock issue 1. I'll take a look at substitutes in the Unix scripts tonight. If I can get everything working I'll post a new build.
tactics Wed 16 Apr 2008
Yeah, that list is more or less what I figured out last night. I missed the waitFor vs. exitValue point, which explains why I kept getting IllegalBlahExceptions every other time when I ran it.