Re: [Chicken-users] CMake tarballs

2006-07-31 Thread felix winkelmann

On 7/29/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:

Since CMake is capable of generating its own tarballs, I'd like to put
one up on the Chicken webpage.  It is important for people to start
trying the build.  I believe it is now either beta quality or close to it.

Come the next release of Chicken, it doesn't make much sense to
distribute the CMake stuff together with the ./configure stuff.  They
each do the tarball in a different way, and I'm not going to try to make
them do it the same way.  So that means that during a long transition
period, we'd have 2 different tarball distributions, until people become
confident in the CMake build.



Sorry, but why do we need two different kinds of binary distributions?
Isn't the whole point of distributing a binrary to make the used build
environment transparent? The cmake build should be (and I'm sure it
is, as I've witnessed how much progress went into it) just as bad or as good
as the other binary.

So I'm rather reluctant to put up yet another binary distro - the whole point
about cmake is that it simplifies the build, not because it generates better
binaries (IMHO). That the cmake build has to be tested is another thing,
of course. But I'm sure developers will try cmake more once it has topped
the autotools build in terms of speed and convenience.

(I'm using autotools in the moment for most stuff, but this is likely to change
soon).


--
http://galinha.ucpel.tche.br:8081/blog/blog.ssp


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread felix winkelmann

On 7/30/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:


 Is your resistance based on actually using the CMake build?  Tell me what's
broken about the build, not how you can't be bothered to download a CMake
package.  Generally, in open source, when some people do large things of
general benefit, other people are expected to do small things for personal
benefit.  That's the calculus of how anything gets done.



I don't think Toby called the build broken, but for a UNIX developer,
the canonical way of building a package is ./configure;make;make install
and any change in that means some getting used to. It will come, once
cmake gets more attention.

But configuring and building software is something that can get annoying
quickly, as we all have surely experienced, so I can understand anybody
who gets sensitive when a time-proven build step does something that moves
away from the usual path, even if superior (I like ccmake, for example. It
has a few quirks, but it is a good idea).



I, for one, am not interested in making Chicken even more obscure by
requiring an obscure build tool.

 CMake 2.4.2 is readily obtained in various Linux distros.  That's not every
Unix out there but it's a lot of 'em.  If your Unix doesn't have a packaging
system, perhaps you should contribute your open source energies to one.



But cmake is not a standard component yet. That can be a problem. On the
other hand it builds fine on all platforms I have access to.

Oh, and don't tell people on this list to contribute to something other
than Chicken, please! ;-)


 Emphasizing every while leaving out MSYS and VC++ - particularly the
latter - is just Unix bigotry.  The fact of the matter is, half the world
uses VC++ for stuff.  Having a build that handles all versions of VC++,
without needing to write separate special stuff, is advantageous to
Chicken's future.  Heck, in the CMake universe, sometimes I have to
entertain VC++ yokels who don't think Unix is very important, that CMake
should just orient itself around handling all the different flavors of VC++
because that's so inherently useful.  Fortunately, the CMake developers know
what the term cross-platform means, so VC++ bigots and Unix bigots are
never taken seriously.


Indeed, Windows builds are the main reason why I think CMake is so useful.
There were times when I thought Windows is a homogenous platform - Boy, was
I wrong: MSVC, MinGW, Cygwin, ... It's a mess, built around an operating
system that isn't exactly broken, but doesn't give any decent support for
development either. UNIX is a mess as well, sure, but it's messyness is older,
and people have put a lot of brain into finding a solution (autotools) that
works, most of the time.




 CMake isn't even a usual solution for Windows.


 Neither is Chicken.  Nor Darcs.



You do have a point here. The reason is that Windows has no usual solution,
Windows is a non-developer platform.




 Exactly. Why would I want to install CMake so I can build on a system
that actually allows me to have a real build environment.


 What you mean is a Unix build environment.  BTW there are other build
cultures out there.  Aside from Autotools and CMake, SCons and Ant are
notable ones.  Someone was even working on a Chicken SCons thingy, about the
time I got started with CMake.  I have not heard anything about that in
awhile, so I assume it was either abandoned or not much effort is being put
into it.


The SCons stuff was about building programs compiled with Chicken, not Chicken
itself, IIRC.



 When you raise trivial objections, it is called stop energy.  Here's a
RFC on stop energy:
http://www.userland.com/whatIsStopEnergy  Being a proponent
of Stop Energy is not something to be proud of.


Please lets not start accusing each other. Lets keep this technical, ok?



 And there's the Dart Dashboard stuff for testing and web reportage, if
anyone's actually interested enough in that to do the work.  I'm more
concerned with OpenGL at present, and would like others to step up for such
things.  The offer from Kitware to do the server-side hosting is there
though.


Yes, it's there and I'm really pleased by their offer. Still, a non-dashboard,
fully chicken-based testing method is what I personally prefer, to be honest,
to allow things like comparing benchmark results, etc.



 Finally, the CMake guys give real support and assistance with their stuff.
I've not worked with a more responsive open source team.  I went with CMake
as much for the people as the technology.  In contrast, the GNU crowd is
exceedingly difficult to work with, full of polemics.  I offered to wrap
VC++ for them once, using code from 2 different available open source
solutions.  They refused.  It would harm the GNU Project, they said.



There are polemics everywhere, in the UNIX world as in the Windows world.
There are polemics on this mailing list. I'm a polemic myself.


 Do you realize that the reason I got started on CMake in the first place is
because Felix felt 

Re: [Chicken-users] CMake tarballs

2006-07-31 Thread Brandon J. Van Every

felix winkelmann wrote:

On 7/29/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:

Since CMake is capable of generating its own tarballs, I'd like to put
one up on the Chicken webpage.  It is important for people to start
trying the build.  I believe it is now either beta quality or close 
to it.


Come the next release of Chicken, it doesn't make much sense to
distribute the CMake stuff together with the ./configure stuff.  They
each do the tarball in a different way, and I'm not going to try to make
them do it the same way.  So that means that during a long transition
period, we'd have 2 different tarball distributions, until people become
confident in the CMake build.



Sorry, but why do we need two different kinds of binary distributions?


This seems to be confusing the issue.  I thought the parlance was, a 
Chicken tarball is not a binary, it is a source tree with .c files that 
does not require Chicken in order to build it.  The CMake build has this 
capability now.  However, it generates a different tarball than 
./configure does.  It doesn't put .c files in the same places; this is 
necessary to support CMake's two-stage bootstrapping and 
out-of-directory build capabilities.


Windows VC++ is the only platform on the Chicken homepage that has a 
binary.  I suppose some other binaries are lurking about in the form of 
Linux distros.  Don't know if anyone has taken on the Cygwin distro.  
MinGW is a valid binary target, quite apart from VC++.  Whether 
distributed as binary or a source tarball, currently only CMake can 
build it.  Building the VC++ binary with CMake would also be wise if it 
works, as it would allow us to get rid of the makefile.vc build.


I thought it would be sensible to distribute different tarballs since 
they have different capabilities.



Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread felix winkelmann

On 7/31/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:


 Sorry, but why do we need two different kinds of binary distributions?

This seems to be confusing the issue.  I thought the parlance was, a
Chicken tarball is not a binary, it is a source tree with .c files that
does not require Chicken in order to build it.  The CMake build has this
capability now.  However, it generates a different tarball than
./configure does.  It doesn't put .c files in the same places; this is
necessary to support CMake's two-stage bootstrapping and
out-of-directory build capabilities.



Oh, damn. Yes, of course you where talking about tarballs. I should
pay more attention.

Is there *some* way to have a single tarball layout? In what directories
do you need to put the files? I don't want different tarballs for different
build tools, that's silly. So we have to make them equivalent and
distribute a single one.


cheers,
felix


--
http://galinha.ucpel.tche.br:8081/blog/blog.ssp


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread Brandon J. Van Every

felix winkelmann wrote:




Oh, and don't tell people on this list to contribute to something other
than Chicken, please! ;-)


Heh!  All will henceforth contribute to automagical Chicken packaging 
systems.





Indeed, Windows builds are the main reason why I think CMake is so 
useful.
There were times when I thought Windows is a homogenous platform - 
Boy, was

I wrong: MSVC, MinGW, Cygwin, ... It's a mess, built around an operating
system that isn't exactly broken, but doesn't give any decent support for
development either. UNIX is a mess as well, sure, but it's messyness 
is older,
and people have put a lot of brain into finding a solution (autotools) 
that

works, most of the time.


Autotools could have solved Windows build problems eons ago.  The Free 
Software Foundation does not want it to happen.  They want Windows to 
die, and anything that uses VC++ to die.  They are intensely political, 
and I didn't appreciate the depth of this until I got on the Autoconf 
mailing list a few years ago.  Their phrase, It would harm the GNU 
Project spoke volumes to me.


The FSF has benefited the world with a lot of tools, and has caused 
things to happen that otherwise wouldn't have happened.  But they've 
also had blind spots due to their politics.  Other open source 
developers who don't entirely believe in their ideology have moved into 
the niches they don't want to be part of.  Linux, CMake, and Eclipse are 
all examples of this.  Yes Linux is GPLed, yes it's 80% GNU tools.  But 
organizationally, Linus Torvaldis got something done that RMS never got 
done with the GNU Hurd.  People who want results move beyond pure 
ideology.  It's good what the FSF has given the world, but I sure don't 
care to work with them.  They want all software licenses to be ideology 
and social movement.  They are opposed to people making their own 
business decisions and just developing things that work.  So 
fortunately, there are other open source cultures and we don't require 
the FSF for everything.


CMake solves the problem that the FSF won't solve.  The reason CMake 
isn't more popular is because Autoconf has such a huge installed base.  
But I think in the next decade, Autoconf will be seen as increasingly 
archaic.  More projects will move to better build systems, CMake or 
otherwise.







 CMake isn't even a usual solution for Windows.


 Neither is Chicken.  Nor Darcs.



You do have a point here. The reason is that Windows has no usual 
solution,

Windows is a non-developer platform.


Well, Visual Studio, VC++, and C# are usual.  But what of it?  They're 
also limited.  Windows development culture is end user centric.  This 
can make it rather painful for developers.  On the other hand, you have 
a lot more options for commodity hardware support.  That's one thing 
that Windows does do a lot better than any of the Linux distros I've 
seen.  A lot of the functional programming crowd I hang out with in 
Seattle prefers Macs.  They offer the power programmer stuff + far 
better ease of use for devices and stuff.  You pay for it though, and 
it's almost irrelevant as a consumer gaming platform.  I hang out on 
Windows only because I think I'm going to ship games on it.





 And there's the Dart Dashboard stuff for testing and web reportage, if
anyone's actually interested enough in that to do the work.  I'm more
concerned with OpenGL at present, and would like others to step up 
for such

things.  The offer from Kitware to do the server-side hosting is there
though.


Yes, it's there and I'm really pleased by their offer. Still, a 
non-dashboard,
fully chicken-based testing method is what I personally prefer, to be 
honest,

to allow things like comparing benchmark results, etc.


Sure, fine, whatever.  Someone do the work.  You said you didn't want 
to, and I don't want to either.  I want someone else to do some heavy 
lifting so I can get on with OpenGL stuff.  Which I've had a damn hard 
time getting started on this past week, because it isn't the same CMake 
drill I've been doing for 9 months.







 Finally, the CMake guys give real support and assistance with their 
stuff.
I've not worked with a more responsive open source team.  I went with 
CMake

as much for the people as the technology.  In contrast, the GNU crowd is
exceedingly difficult to work with, full of polemics.  I offered to wrap
VC++ for them once, using code from 2 different available open source
solutions.  They refused.  It would harm the GNU Project, they said.



There are polemics everywhere, in the UNIX world as in the Windows world.
There are polemics on this mailing list. I'm a polemic myself.


There are degrees of it, and you can't hold a candle to the GNU bigots, 
frankly.  I'd like to see you try.





And I say it again: autotools SUCKS SUCKS SUCKS. It's hideous, m4 is
brain-damaging, thousand-line shellscripts are sick, fighting with
autotools-versions is annoying, and reading the official book
(GNU Autoconf, Automake and 

Re: [Chicken-users] CMake tarballs

2006-07-31 Thread Brandon J. Van Every

felix winkelmann wrote:

On 7/31/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:


 Sorry, but why do we need two different kinds of binary distributions?

This seems to be confusing the issue.  I thought the parlance was, a
Chicken tarball is not a binary, it is a source tree with .c files that
does not require Chicken in order to build it.  The CMake build has this
capability now.  However, it generates a different tarball than
./configure does.  It doesn't put .c files in the same places; this is
necessary to support CMake's two-stage bootstrapping and
out-of-directory build capabilities.



Oh, damn. Yes, of course you where talking about tarballs. I should
pay more attention.

Is there *some* way to have a single tarball layout?


Sure.  I suggest creating /boot/*.c.in files as the CMake build does.  
That way, people won't get confused about .c files in their toplevel 
directory, whether those were built in-directory or came with the 
tarball, etc.



In what directories
do you need to put the files? I don't want different tarballs for 
different

build tools, that's silly.


No it is not silly, because...


So we have to make them equivalent and
distribute a single one.


...when you say we, do you mean you?  Unless you are willing to work 
on ./configure, or you can goad some other ./configure expert into doing 
it, these builds ain't gonna merge.  I'm not a ./configure expert and 
I'm not going to become one.  I'll handle stuff that needs to happen on 
the CMake side, that is easy for me.  But learning ./configure in detail 
is a complete waste of my time and defeats the purpose of my last 9 
months.  If I had any intention of dealing with ./configure that much, I 
would have done it 9 months ago.


It would be quite sensible to distribute 2 builds to save work.  It's 
sensible to have no conflation of issues, i.e. nobody half-building with 
./configure then switching to CMake because something went wrong on 
MinGW, then half-arsing the whole thing in their bug report.  No getting 
confused about which set of directions to follow.  No deadcode paths, 
where say the distribution/release.setup code is being exercised, the 
dist.cmake code isn't, and the CMake build is always being broken on 
check-ins because it's not being exercised regularly. 



Cheers,
Brandon Van Every




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread felix winkelmann

On 7/31/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:


 Is there *some* way to have a single tarball layout?

Sure.  I suggest creating /boot/*.c.in files as the CMake build does.
That way, people won't get confused about .c files in their toplevel
directory, whether those were built in-directory or came with the
tarball, etc.


Next question: can the CMake build omit the boot and create the
.c files in the toplevel directory?
(I know you won't like it, but is it possible?)

Anyway, there won't be two different tarballs, so we have to solve
this either by modifying either the cmake or the autotools build.


cheers,
felix


--
http://galinha.ucpel.tche.br:8081/blog/blog.ssp


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread John Cowan
felix winkelmann scripsit:

 There were times when I thought Windows is a homogenous platform -
 Boy, was I wrong: MSVC, MinGW, Cygwin, ... It's a mess, built around
 an operating system that isn't exactly broken, but doesn't give any
 decent support for development either.

To be fair, I think Windows gives good support for development if you
use Microsoft tools and deploy only on Windows.  It's not in Microsoft's
business interests to make cross-platform development straightforward,
with the exception of getting server-side stuff converted from Unix
to Windows.

 But perhaps it's just a personal problem of mine: Shellcode makes me
 want to close my eyes and think of something differently.

Lie back and think of England is the usual advice in these situations.
(I don't know whether England here is about nostalgia or patriotism.)

-- 
What has four pairs of pants, lives John Cowan
in Philadelphia, and it never rains http://www.ccil.org/~cowan
but it pours?   [EMAIL PROTECTED]
--Rufus T. Firefly


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread John Cowan
Brandon J. Van Every scripsit:

 I do agree with William 
 Hoffman: having a nice language doesn't matter.  

In that case, hoping that Chicken will catch on is pointless, as
it has nothing else to offer.  :-)

-- 
On the Semantic Web, it's too hard to prove John Cowan[EMAIL PROTECTED]
you're not a dog.  --Bill de hOra   http://www.ccil.org/~cowan


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-31 Thread Brandon J. Van Every

felix winkelmann wrote:

On 7/31/06, Brandon J. Van Every [EMAIL PROTECTED] wrote:


 Is there *some* way to have a single tarball layout?

Sure.  I suggest creating /boot/*.c.in files as the CMake build does.
That way, people won't get confused about .c files in their toplevel
directory, whether those were built in-directory or came with the
tarball, etc.


Next question: can the CMake build omit the boot and create the
.c files in the toplevel directory?
(I know you won't like it, but is it possible?)


The CMake build does have to remain two-stage, so omit is the wrong 
word here.  I can change the directory structure so that the boot stuff 
gets done in the main directory, and the final output gets done in a 
/stagetwo directory.  This would allow ./configure to avoid messing with 
any directory structure issues.


*.c vs. *.c.in is still an issue though.  What I'd like ./configure to 
do, is distribute *.c.in files, and copy them at configure time to .c 
files.  That keeps in-directory and out-of-directory builds from getting 
clobbered.  How doable is this from your perspective?



Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread Brandon J. Van Every




John Cowan wrote:

  Brandon J. Van Every scripsit:

  
  
The CMake tarball should have a name that's different from the 
./configure tarball.  Perhaps something like chicken-2.41c.tar.gz with 
the "c" standing for CMake.

  
  
That looks like version 2.41c, which is not good.  chicken-cmake-2.41.tar.gz
will fly better with various automated archiving tools that know that the
final "*.tar.gz" is the version number and format.

  



What tools are these? Do they handle forks or variants? If they only
handle one true version, that's not very useful.

I'm not keen on naming the build in a way that looks "unofficial" or
"special" or "different." As in, "what the hell is this -cmake-
thing??" I want people to just use the build.


Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread Brandon J. Van Every




John Cowan wrote:

  Brandon J. Van Every scripsit:

  
  
What tools are these?  Do they handle forks or variants?  If they only 
handle one true version, that's not very useful.

  
  
They're used by ibiblio that I know of for sure, and probably
other standard repositories as well.

Forks and variants are handled by changing the name part of the
"name-version.format" style.  Note that the name can contain
hyphens and the version and format can contain periods (as in "tar.gz").
The assumption made is that if you have foo-bar-123.tar.gz
and foo-bar-124.tar.gz (or baz-12a.zip or baz-12b.zip), the
first of each pair has been superseded by the second.

So chicken-2.41c would look like a later version than chicken-2.41,
which is not the case.
  


I think I could live with chicken-c-2.41.tar.gz.


  
  
  
I'm not keen on naming the build in a way that looks "unofficial" or 
"special" or "different."  As in, "what the hell is this -cmake- 
thing??"  I want people to just use the build.

  
  
But it *is* an unofficial build, at least for now.  


Well why don't I name it
chicken-dont-use-this-its-unofficial-2.41.tar.gz then? I'm not
interested in an unappetizing name, if such names there be. It will
never become official if it is not consumed.



  And of course it
relies on the user already having cmake or being willing to install
it.


Testily, I say, so what? It also relies on people having a friggin' C
compiler, a minimum level of technical literacy, and probably other
things.


The same is true of autoconf/automake, of course, but those are
more widely distributed so far.
  


It only relies on people having a Unix shell. Convenient, but it sure
makes people lazy.


Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread Toby Butzon
I've come close to responding to this notion that we're headed for CMake
being the way to build Chicken, and I've chosen to keep my mouth shut.
But it seems like we're moving in that direction simply because there
isn't much resistance. So, I'll go on and make it clear that there is.

On Sun, Jul 30, 2006 at 09:40:01AM -0700, Brandon J. Van Every wrote:
 John Cowan wrote:
 Brandon J. Van Every scripsit:
 I'm not keen on naming the build in a way that looks unofficial or 
 special or different.  As in, what the hell is this -cmake- 
 thing??  I want people to just use the build.

It *is* special, different, and unofficial. I agree with John -- 2.41c
looks like a version number. Even chicken-c-2.41 is too cryptic for me.
I'd rather have it be clear -- chicken-cmake-2.41.

On Sun, Jul 30, 2006 at 09:40:01AM -0700, Brandon J. Van Every wrote:
 Well why don't I name it 
 chicken-dont-use-this-its-unofficial-2.41.tar.gz then?  I'm not 
 interested in an unappetizing name, if such names there be.  It will 
 never become official if it is not consumed.

If you're rather use chicken-dont-use-this-its-unofficial, go right
ahead. ;)

I, for one, am not interested in making Chicken even more obscure by
requiring an obscure build tool. On *every* platform except non-Cygwin,
non-MSYS, straight Windows, autotools does the job just fine.

IMHO, one platform -- for which two viable workarounds exist -- should not
drive a shift that will require everyone else -- those that *have* been
able to build up to this point, just by typing ./configure; make; make
install -- to go out and get some newfangled installer for the same job.

CMake isn't even a usual solution for Windows. Creating a CMake
build isn't going to make Chicken internals development on Windows any
less obscure. (For most people, just having a Windows binary would be
plenty. They couldn't care less if it was built on mingw.) If I had to
run chicken on windows, I certainly wouldn't be itching to build it from
scratch. There isn't even a C compiler on a Windows machine, by
default... How is that sane?

 John Cowan wrote:
 And of course it
 relies on the user already having cmake or being willing to install
 it.

Exactly. Why would I want to install CMake so I can build on a system
that actually allows me to have a real build environment.  Autotools by
design doesn't have to be installed... it generates a shell script and
makefiles that work anywhere with a reasonable development environment.

 Testily, I say, so what?  It also relies on people having a friggin' C 
 compiler, a minimum level of technical literacy, and probably other things.

No need to be snippy. Yes, it requires a C compiler, which every system
EXCEPT Windows ships with already installed. On Unix, requiring CMake,
which isn't a usual addition, would be more work. Increasing the work on
Unix to decrease the work necessary on a system that doesn't come with a
C compiler just sounds backwards. Hey, we could probably compile it on
the N64... let's make the Unix process harder so N64 takes a step or
two less.

I'll grant that having Windows binaries is important. But building from
scratch?  ...not so much.

 It only relies on people having a Unix shell.  Convenient, but it sure 
 makes people lazy.

I don't see how having a Unix shell makes me lazy. Because I can install
Chicken with a simple ./configure; make; make install? Do you whip
yourself every time you install a program with an InstallShield wizard,
for being so lazy?

So there it is. Is it lamentable that the build process on Windows isn't
*easy*? Yes. Is it Chicken's fault? No. Would it be a showstopper for
Chicken to be used or even be popular on Windows? No. Windows people
tend to be perfectly happy without compiling things in the first place.

Don't get me wrong. Having a CMake build can be nothing but an asset.
But pushing so hard for it to be the official way to build is too much.
It's fine if you want to support it... I hope lots of people find it
useful, and I hope it gives you satisfaction to contribute. Just try not
to be too heavy handed about it... chucking autotools would not be a
good move.

-- 
Toby Butzon



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread Brandon J. Van Every




Toby Butzon wrote:

  I've come close to responding to this notion that we're headed for CMake
being "the" way to build Chicken, and I've chosen to keep my mouth shut.
But it seems like we're moving in that direction simply because there
isn't much resistance. So, I'll go on and make it clear that there is.
  


Is your resistance based on actually using the CMake build? Tell me
what's broken about the build, not how you can't be bothered to
download a CMake package. Generally, in open source, when some people
do large things of general benefit, other people are expected to do
small things for personal benefit. That's the calculus of how anything
gets done.


  

I, for one, am not interested in making Chicken even more obscure by
requiring an obscure build tool.


CMake 2.4.2 is readily obtained in various Linux distros. That's not
every Unix out there but it's a lot of 'em. If your Unix doesn't have
a packaging system, perhaps you should contribute your open source
energies to one. 


   On *every* platform except non-Cygwin,
non-MSYS, straight Windows, autotools does the job just fine.
  


Emphasizing "every" while leaving out MSYS and VC++ - particularly the
latter - is just Unix bigotry. The fact of the matter is, half the
world uses VC++ for stuff. Having a build that handles all versions of
VC++, without needing to write separate special stuff, is advantageous
to Chicken's future. Heck, in the CMake universe, sometimes I have to
entertain VC++ yokels who don't think Unix is very important, that
CMake should just orient itself around handling all the different
flavors of VC++ because that's so inherently useful. Fortunately, the
CMake developers know what the term "cross-platform" means, so VC++
bigots and Unix bigots are never taken seriously.



  
CMake isn't even a "usual" solution for Windows.


Neither is Chicken. Nor Darcs. Give me something substantive.



   Creating a CMake
build isn't going to make Chicken internals development on Windows any
less obscure. (For most people, just having a Windows binary would be
plenty. They couldn't care less if it was built on mingw.)


I'm happy to work on shipping binaries and packages for all platforms.
This has nothing to do with the build system. It has more to do with
removing hardwired default pathnames from the source code.



  There isn't even a C compiler on a Windows machine, by
default... How is that sane?
  


Since when did the universe owe you a preinstalled C compiler? I'm
impressed enough that there are free ones out there.



  
  
  
John Cowan wrote:


  And of course it
relies on the user already having cmake or being willing to install
it.
  

  
  
Exactly. Why would I want to install CMake so I can build on a system
that actually allows me to have a real build environment.


What you mean is a Unix build environment. BTW there are other build
cultures out there. Aside from Autotools and CMake, SCons and Ant are
notable ones. Someone was even working on a Chicken SCons thingy,
about the time I got started with CMake. I have not heard anything
about that in awhile, so I assume it was either abandoned or not much
effort is being put into it.

See, it's like this. If you personally work on Chicken builds, and
make everything work right for everyone else, and put tons and tons of
hours into it, then you can get other people to use your tools. That's
how open source works. If you personally had actually fixed the
./configure build for MinGW / MSYS in the past 9 months, and kept the
VC++ build running as well, then I'd be doing things your way and would
never have embarked upon this. Instead, MinGW and VC++ were always
breaking. Energy had to go into fixing the Chicken source itself, not
just the build system. MinGW still breaks under ./configure, nobody's
doing anything about it.

When you raise trivial objections, it is called "stop energy." Here's
a RFC on stop energy: http://www.userland.com/whatIsStopEnergy Being a
proponent of Stop Energy is not something to be proud of. 



  Do you whip
yourself every time you install a program with an InstallShield wizard,
for being so lazy?
  


Incidentally, CPack,
http://www.cmake.org/Wiki/CMake_Packaging_With_CPack although
underdocumented, can apparently create installation packages for every
platform. Useful for shipping binaries if such we choose. ;-)

And there's the Dart Dashboard stuff for testing and web reportage, if
anyone's actually interested enough in that to do the work. I'm more
concerned with OpenGL at present, and would like others to step up for
such things. The offer from Kitware to do the server-side hosting is
there though.

Finally, the CMake guys give real support and assistance with their
stuff. I've not worked with a more responsive open source team. I
went with CMake as much for the people as the technology. In contrast,
the GNU crowd is exceedingly difficult to work with, full of polemics.
I offered to wrap VC++ for them once, using 

Re: [Chicken-users] CMake tarballs

2006-07-30 Thread John Cowan
Toby Butzon scripsit:

 I, for one, am not interested in making Chicken even more obscure by
 requiring an obscure build tool. On *every* platform except non-Cygwin,
 non-MSYS, straight Windows, autotools does the job just fine.

Autotools is a pair of kludges piled on a kludge.  And Windows is not
an obscure and insignificant platform.

 IMHO, one platform -- for which two viable workarounds exist -- should not
 drive a shift that will require everyone else -- those that *have* been
 able to build up to this point, just by typing ./configure; make; make
 install -- to go out and get some newfangled installer for the same job.

You get cmake *once* -- as simple as apt-get cmake or yum
cmake or your local equivalent.   At worst, you download it from
http://www.cmake.org and do ./bootstrap; make; make install.  After
that, building with CMake is cmake; make; make install, which is *not*
more difficult.

 Exactly. Why would I want to install CMake so I can build on a system
 that actually allows me to have a real build environment.  Autotools by
 design doesn't have to be installed... it generates a shell script and
 makefiles that work anywhere with a reasonable development environment.

That turns out not to be the case.

In fact, I just had to install autoconf and automake on my Solaris test
system in order to be able to build the darcs head.  (I skipped installing
darcs itself by doing a darcs pull on a system -- a Windows system --
that does have darcs and then tarring up the result.)  Luckily, someone
had already installed gcc and GNU make already, so I didn't have to go
through all that just starting from the native Solaris toolchain.

For that matter, the native Solaris make will accept the Makefile
constructed by CMake, but not the one constructed by autotools.)

 Don't get me wrong. Having a CMake build can be nothing but an asset.
 But pushing so hard for it to be the official way to build is too much.

The *only* reason that I'm not pushing as hard as I can to make CMake
the regular build process *right now* is that it doesn't build properly
on Cygwin, which is my chosen environment.

Why?  Because it's measurably faster to build, easier to understand,
and much easier to maintain.  It's just a better build system.

-- 
John Cowanhttp://ccil.org/~cowan[EMAIL PROTECTED]
SAXParserFactory [is] a hideous, evil monstrosity of a class that should
be hung, shot, beheaded, drawn and quartered, burned at the stake,
buried in unconsecrated ground, dug up, cremated, and the ashes tossed
in the Tiber while the complete cast of Wicked sings Ding dong, the
witch is dead.  --Elliotte Rusty Harold on xml-dev


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread Brandon J. Van Every

John Cowan wrote:


The *only* reason that I'm not pushing as hard as I can to make CMake
the regular build process *right now* is that it doesn't build properly
on Cygwin, which is my chosen environment.
  


It doesn't?  I thought we nailed the dynamic loading nomenclature 
problem.  Is there some other problem?



Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-30 Thread John Cowan
Brandon J. Van Every scripsit:

 It doesn't?  I thought we nailed the dynamic loading nomenclature 
 problem.  Is there some other problem?

No, the same issue.  It loads -- you solved the file not found problem
-- but then it crashes with nursery too small, which Felix says is a
symptom of loading libchicken twice under different names.

So I'm still building both ways and then installing the autotools
version as my working version.

-- 
Babies are born as a result of the  John Cowan
mating between men and women, and most  http://www.ccil.org/~cowan
men and women enjoy mating. [EMAIL PROTECTED]
--Isaac Asimov in Earth: Our Crowded Spaceship


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] CMake tarballs

2006-07-29 Thread John Cowan
Brandon J. Van Every scripsit:

 The CMake tarball should have a name that's different from the 
 ./configure tarball.  Perhaps something like chicken-2.41c.tar.gz with 
 the c standing for CMake.

That looks like version 2.41c, which is not good.  chicken-cmake-2.41.tar.gz
will fly better with various automated archiving tools that know that the
final *.tar.gz is the version number and format.

-- 
What is the sound of Perl?  Is it not the   John Cowan
sound of a [Ww]all that people have stopped [EMAIL PROTECTED]
banging their head against?  --Larryhttp://www.ccil.org/~cowan


___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users