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
