On Monday 04 September 2006 17:19, Brandon J. Van Every wrote:
[snip]
> Two perceived reasons for building only from .c files:
> 
> - someone may need to cross-compile
> - someone may be unable to get a bootstrapped chicken to compile .scm to .c
> 
> I have serious reservations about the latter reason.  Part of the point 
> of getting people to build from sources, is to test the build.  If we 
> aren't actually exercising the .scm to .c part of the build, then that's 
> a way for build problems to develop.  We want users to see build 
> problems and report them to us, so that we can fix them.  Granted, if we 
> start distributing binaries for multiple platforms, then we won't get 
> the benefit of in-field build testing.  It would be down to just Felix's 
> build environment and my build environment, either of which could 
> develop probelms, flake, or go belly up.  I think if we start 
> distributing binaries, and aren't getting any in-field build testing, 
> then we need to implement a regular nightly build.

Why is it important for your build system to be exercised everywhere? If you 
can provide a windows installer based solution won't 99.999% of interested 
Windows chicken users be happy?

> As for cross-compilation.  First, I'll define it, to avoid heat and 
> angst over nothing.  "Cross-compilation" means "building an .exe on one 
> platform that is meant to run on another platform."  Distributing .c 
> files is not cross-compilation (at least from a C compiler's 
> perspective).  Firing up the MinGW-Windows target on Linux, that's 
> cross-compilation.  Various open source projects do this sort of thing; 
> for instance, I believe http://www.freeciv.org is built this way.  
> (Warning: Elite Timewaster Alert!)
> 
> So, who has the real need to do cross-compilation?

Cell phones, UMPC's, PDA's, embedded systems, heck - maybe even 
microcontrollers, are all valid targets to use chicken as a development 
mechanism. Choices you make in your build system will impact the ease of 
doing cross compilation and the likelyhood of chicken being used in these 
applications. I think there have been some successes IIRC but I know I have 
failed to get chicken + eggs working via cross-compilation. I have surveyed 
the scheme options for doing what I want (end user apps and robot controller 
on the Ipaq) and I think that if I could get it to work chicken would be a 
really neat solution.

> Felix, I hope it's not you, and that you're saying you just want to 
> cross-compile for official Windows distributions.  CMake 2.4.3 can't do 
> cross-compilation, although it may be implemented in the distant 
> future.  That means you'd be building official Chickens using Autoconf.  
> That's very much against my agenda, which is, having CMake builds 
> regularly exercised and tested in-field.  It also strikes me as a really 
> bad idea, putting so much faith in cross-compilation, as opposed to 
> building, testing, and solving problems on proper Windows boxes.  It's 
> just a whole new can of worms that I personally won't be dealing with.  
> The Autoconf support is really weak / broken for MinGW, both in Chicken 
> and in MSYS.  It doesn't even exist for MSVC; that's why I spent 9 
> months implementing a CMake build. 
> 
> So, let's say cross-compilation isn't for official Windows builds.  
> Maybe it's Unix-Unix cross-compilation or something.  Who needs to do 
> it?  What are the requirements? 

I would like to use chicken to develop applications on my IPAQ handheld PC 
running familiar Linux with Opie (http://handhelds.org). This lowly machine 
has limited memory and is excruciatingly slow doing compilation. 
Theoretically it is possible for me to get gcc etc. running on it but I 
haven't yet succeeded (I get "C compiler can't create executables" errors). 
I'm using Openembedded (http://www.openembedded.org/) for cross compilation.

I wouldn't care what build system chicken uses if I could just install the 
right .ipk files on my Ipaq :-). As I mentioned in a previous post I was able 
to get chicken compiled and make a package file for the Ipaq. I'm stuck now 
since I can't figure out how to get eggs to compile under Openembedded.

I think the simplest solution would be a mechanism that dumped all the 
required C files etc. so I could cross compile without having to run chicken 
on the target system.

Maybe something like this:

stage1: creates bootstrap csc etc, autoconf files and CMake files
    stage2, option 1: builds using CMake
    stage2, option 2: builds using Autoconf. 

> And is this going to require Autoconf forever?  I'm not in favor of 
> that.  CMake may not be able to cross-compile, but it is 1 build and it 
> does work everywhere, unlike Autoconf.  That outweighs the convenience 
> of building everything from only 1 box.  I don't want to maintain 2 
> builds, especially if cross-compilation drives more and more feature 
> requirements that disrupt the CMake build.

I guess you guys will have to decide if supporting us nuts who think we need 
to do cross compilation are worth the pain to support :-)

> A final thorn: which build to install?  It doesn't matter with Autoconf, 
> as it's only a one-stage build.  CMake is two-stage; its first stage is 
> done in the /boot directory.  Let's say I built /boot entirely from .c 
> files, and even throw in currently missing bits like /boot/csi, 
> /boot/csc, /boot/chicken-profile, and /boot/chicken-setup.  Should I let 
> the user install this?  No, I shouldn't.  I want them to do a two-stage 
> bootstrap and install the final products.  I don't want to take bug 
> reports on one-stage Chickens that got installed from /boot.  They're 
> supposed to get the best code as the final output; that's all I want to 
> maintain.
> 
> Bottom line: I think CMake should only use .c files to build 
> chicken-boot.  Further products need to be derived from chicken-boot, 
> i.e. csi, csc, chicken-profile, chicken-setup.
> 
> 
> Cheers,
> Brandon Van Every
> 
> 
> 
> _______________________________________________
> Chicken-users mailing list
> [email protected]
> http://lists.nongnu.org/mailman/listinfo/chicken-users
> 
> 
> 

-- 
http://www.kiatoa.com, a self-governing site where *you* can be the boss!
  You make and choose the stories and the classifieds are always free.
     Also, many "best of" polls. Come join in the ballot stuffing!


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to