Re: [CMake] improve the CMake language?

2007-11-08 Thread Gonzalo Garramuño

Brandon Van Every wrote:


1) licenses that are unfriendly to unfettered commercial development,
often don't get accepted by commercial developers.  


Not really.

cmake is a stand-alone utility.  With any of the scripting language 
licenses, you can still ship cmake with your own, say, proprietary 
non-open source IDE.


For a utility like cmake that has very little use outside development, 
licensing is not going to be the main issue in making it more or less 
popular.  The main reason will be how good it is (or isn't).


If cmake was a popular C library on the other hand... the type of OSI 
licensing would indeed matter *much* more.




2) I don't personally make a habit of investing in software that
encumbers me.  MIT / BSD / zlib-libpng licenses allow me...


Right... I'll let it slide that your main platform of development is 
Windows.



And I agree with Juan, Lua sounds more
compelling than Ruby.


Brandon, my understanding is that you don't know neither ruby nor lua.
Before you make that kind of statement, you actually might want to spend 
some time actually using both languages first.




3) Your license choices are fine for your own use, but you'd need to
talk to Kitware about what they actually want.



Now, that could be a fair point.  If I was interested in having Kitware 
distribute cmake with ruby.  Which albeit I like the idea, I don't think 
I pushed for it.
As I said, I'm more interested in having a cmake have a language API or 
swig wrappings.  That way, I don't really have to make a commitment to a 
scripting language that can fall out of flavor later on.
I'd also rather offer people several options and let the best language 
arise naturally from that choice.  SWIG allows you to do that with the 
least pain, even if the project is under heavy development like cmake.


Also, you guys are just thinking of embedding the language into cmake. 
I think it is much easier (and less of a license trouble) to do the 
opposite.  Make cmake a *library* to the scripting languages.  That is 
(for ruby):


require 'cmake'
include CMake

generator = 'Unix Makefiles'
cxx_flags = -W 3
sources   = %w( hello.cpp )

add_executable( :hello, :sources = sources )
run



Sure.  That's from your POV.  For me, a language without good and easy
OO is a no-no as experience tells me it will sooner or later run into
scalability and maintainability issues.  That makes TCL and Lua to me
only minimally better than cmake's language in the long run.


What's the biggest build system you've yet written? 


Biggest, a custom one for a now defunct company.
Better one?  Industrial Light and Magic's.  Albeit I did not build it 
myself.  I was more or less consultant and beta tester for it.
cmake's source code in terms of .cmake files is already at the tipping 
point of begging for OO.


 The main ./configure

Err... by your own standard, you can't use that.  That is GPL only.

 It's not an exotic OO exercise;
that would be a waste of time.  


If you think OO is a waste of time and not a way to reduce your 400Mb of 
source code into probably 70Mb or less and enforcing consistency and 
readability, well...




Well that doesn't sound like the dumbest technical trick I've heard.
Could it help with parallel builds?



Nope.  Parallel builds in cmake are handled by your make program, not 
cmake.



--
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-08 Thread Brandon Van Every
On Nov 8, 2007 12:10 AM, Gonzalo Garramuño [EMAIL PROTECTED] wrote:

 Anyway... why are you guys so concerned about cmake's license?  To me,
 as long as the code is open source and forkable, that's all I care for
 cmake.  I'm not planning to make money selling a fork of cmake, borrow
 its source code, use cmake as a library nor embed it into another
 program, which are the reasons I might prefer a BSD/MIT license.

1) licenses that are unfriendly to unfettered commercial development,
often don't get accepted by commercial developers.  They don't have
time for the FUD of multiple license holders or you can do this but
can't do that clauses.  To the extent that I want CMake to be very
very popular, I don't want the license getting in the way.

2) I don't personally make a habit of investing in software that
encumbers me.  MIT / BSD / zlib-libpng licenses allow me to do
whatever I want with the code.  So long as I have choices, I prefer to
keep my options open.  And I agree with Juan, Lua sounds more
compelling than Ruby.

3) Your license choices are fine for your own use, but you'd need to
talk to Kitware about what they actually want.

 Sure.  That's from your POV.  For me, a language without good and easy
 OO is a no-no as experience tells me it will sooner or later run into
 scalability and maintainability issues.  That makes TCL and Lua to me
 only minimally better than cmake's language in the long run.

What's the biggest build system you've yet written?  Right now I'm
messing with one that's 400MB of source code.  The main ./configure
file is 240K, pretty long and piggish.  But it's still just a big long
dumb file, something I can eyeball.  It's not an exotic OO exercise;
that would be a waste of time.  I don't claim tremendous experience at
huge build systems, but I think it would need to be 4GB of source
before I started thinking gosh, I really could use some OO.  And I
don't think I'd be working on such a thing by my lonesome either.  The
build I'm currently working on is still graspable by 1 person, even if
it's a pig of a job to convert to CMake.

 TCL and Lua are only better for embedding if you were to need cmake to
 be multithreaded

Well that doesn't sound like the dumbest technical trick I've heard.
Could it help with parallel builds?


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-08 Thread Bill Hoffman

Gonzalo Garramuño wrote:


3) Your license choices are fine for your own use, but you'd need to
talk to Kitware about what they actually want.



Now, that could be a fair point.  If I was interested in having Kitware 
distribute cmake with ruby.  Which albeit I like the idea, I don't think 
I pushed for it.
As I said, I'm more interested in having a cmake have a language API or 
swig wrappings.  That way, I don't really have to make a commitment to a 
scripting language that can fall out of flavor later on.
I'd also rather offer people several options and let the best language 
arise naturally from that choice.  SWIG allows you to do that with the 
least pain, even if the project is under heavy development like cmake.


Also, you guys are just thinking of embedding the language into cmake. I 
think it is much easier (and less of a license trouble) to do the 
opposite.  Make cmake a *library* to the scripting languages.  That is 
(for ruby):


require 'cmake'
include CMake

generator = 'Unix Makefiles'
cxx_flags = -W 3
sources   = %w( hello.cpp )

add_executable( :hello, :sources = sources )

I guess I can speak for Kitware here.  We have very little interest in 
maintaining CMake as a library.  It is just too much work.  There is a 
big difference between maintaining an executable, and a library. 
Backwards compatibility becomes a much bigger problem as the API becomes 
much bigger if you expose the library as part of the API.  Also, I am 
not sure having N languages for CMake would be the best approach.  So, 
you go to build a project, and hey they are using CMake, cool, I know 
how to run CMake, oh wait, that one is ruby CMake, I need to get the 
ruby CMake to build it.  Would Kitware have to distribute N binaries? 
One of the biggest complaints about CMake, is that it requires CMake to 
be installed in order to do the build.  What if it required N different 
binaries where N was decided on by the project doing the build.  I just 
don't think that would be in the best interest of the community.  At the 
end of the day CMake should be like make, it should be a binary utility 
that is available by default on every OS.  It is a single interface so 
that if you know how to use it in one place you can use it in another.


-Bill


-Bill

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-08 Thread P. Fleury
On 11/8/07, Bill Hoffman [EMAIL PROTECTED] wrote:

 Gonzalo Garramuño wrote:




 [...] Also, I am
 not sure having N languages for CMake would be the best approach.  So,
 you go to build a project, and hey they are using CMake, cool, I know
 how to run CMake, oh wait, that one is ruby CMake, I need to get the
 ruby CMake to build it.  Would Kitware have to distribute N binaries?
 One of the biggest complaints about CMake, is that it requires CMake to
 be installed in order to do the build.  What if it required N different
 binaries where N was decided on by the project doing the build.  I just
 don't think that would be in the best interest of the community.  At the
 end of the day CMake should be like make, it should be a binary utility
 that is available by default on every OS.  It is a single interface so
 that if you know how to use it in one place you can use it in another.


I totally agree with this point. The least I want is to have to
configure/build the build system before I get to the actual project. That,
from my POV, also applies to the 'language as a plugin to cmake' approach,
as one may not have the appropriate plugin to build project X, and has to
download/built it from svn etc. I feel this is way more pain in the long run
than being stuck with a particular programming language.



-Bill


 -Bill

 ___
 CMake mailing list
 CMake@cmake.org
 http://www.cmake.org/mailman/listinfo/cmake

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] improve the CMake language?

2007-11-08 Thread Alexander Neundorf
On Thursday 08 November 2007, Mike Jackson wrote:
...
 As a user of CMake let me second this notion also. CMake only depends
 on a C++ compiler which is every where. Tying CMake to Ruby, Perl, tk
 or anything else may actually decrease CMake's market penetration. I
 don't really see Ruby running on a Cray but CMake will.

Running ruby on the compute nodes of a cray would make much more sense than 
running cmake on the compute nodes of a cray (... and it shouldn't be too 
hard, actually) ;-)

I have the slight feeling that this is getting a bit OT...

Alex
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-08 Thread Brandon Van Every
On Nov 8, 2007 7:01 AM, Gonzalo Garramuño [EMAIL PROTECTED] wrote:

 If cmake was a popular C library on the other hand... the type of OSI
 licensing would indeed matter *much* more.

What if I just want to rip a chunk of code out of Ruby and reuse it
somewhere?  I'll have the PITA of carrying the entire original Ruby
with me.

  2) I don't personally make a habit of investing in software that
  encumbers me.  MIT / BSD / zlib-libpng licenses allow me...

 Right... I'll let it slide that your main platform of development is
 Windows.

Show me a larger game market with fewer restrictions on the indie game
developer.

  And I agree with Juan, Lua sounds more
  compelling than Ruby.

 Brandon, my understanding is that you don't know neither ruby nor lua.
 Before you make that kind of statement, you actually might want to spend
 some time actually using both languages first.

I've watched Lua vs. Ruby in the game industry for many years.

  3) Your license choices are fine for your own use, but you'd need to
  talk to Kitware about what they actually want.
 

 Now, that could be a fair point.  If I was interested in having Kitware
 distribute cmake with ruby.  Which albeit I like the idea, I don't think
 I pushed for it.
 As I said, I'm more interested in having a cmake have a language API or
 swig wrappings.

The last time we had a language API debate, Kitware said no way.
Check the archives.  My $0.02: where's the profit in it?  Doing a lot
of work to entertain everyone's pet language agenda isn't core to
building software.  Mr. Miyagi in The Karate Kid said something along
the lines of better to know 1 kick well.

 That way, I don't really have to make a commitment to a
 scripting language that can fall out of flavor later on.

I don't know what you're worrying about.  Python and Lua are here to
stay, they've proven themselves in their domains.  I'd be surprised if
Ruby's going anywhere, unless Perl 6 finally ships and destroys it
somehow.  Seems pretty low odds of that happening, seems like Ruby's
already inherited the Perl 6 audience.  TCL is on the wane which is
why I'm against TCL.  CMake doesn't need the negative perceptions; in
particular, it doesn't need to look like old software.  Anyways, if
we choose a popular scripting language today, it's going to be 10
years before the sun sets on it.  By then, it's about whether CMake
has cemented itself in the popular consciousness, not the scripting
language.

 Also, you guys are just thinking of embedding the language into cmake.
 I think it is much easier (and less of a license trouble) to do the
 opposite.

There isn't any license trouble with Python or Lua.

 Make cmake a *library* to the scripting languages.  That is
 (for ruby):

Great, now they need a Ruby installation to use CMake in this manner.
We're not on the same page about the goals.

  What's the biggest build system you've yet written?

 Biggest, a custom one for a now defunct company.
 Better one?  Industrial Light and Magic's.  Albeit I did not build it
 myself.  I was more or less consultant and beta tester for it.

ILM is one of the crown jewels of the Python Success Stories.
http://pythonology.org/successstory=ilm  What did they need the OO
for?  And, given they did great with Python, why would they have been
better off doing it in Ruby?

 cmake's source code in terms of .cmake files is already at the tipping
 point of begging for OO.

Dunno.  I'll let others debate that one, as I'm not that familiar with
CMake's code base.  I just poke at it when I need to know something
about bugs or how CMake works, I haven't contributed to it in any way.
 We all agree that CMake script needs some kind of scoping.  That's
been decided and the wheels are turning on it.  But OO?  Dunno.

   The main ./configure

 Err... by your own standard, you can't use that.  That is GPL only.

I don't use Autoconf or GMake.  I translate them to CMake.

   It's not an exotic OO exercise;
  that would be a waste of time.

 If you think OO is a waste of time and not a way to reduce your 400Mb of
 source code into probably 70Mb or less and enforcing consistency and
 readability, well...

Oh, the 400MB is mostly a pile of C++ and Java code.  The build system
is not.  It's about 1200 trivial Makefiles, about a dozen substantial
Makefiles, and one big honkin' ./configure script.  This isn't my
code, I'm merely translating the build system to CMake.  And I'm
saying, it's big and flat, it doesn't need OO.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-07 Thread Gonzalo Garramuño

Juan Sanchez wrote:

I was reading exactly the link you sent, and the same one you accused
Brandon of not reading.  If there were supplemental materials, you
should have sent them.  I am not a lawyer.



To Juan:
Yes.  The best place for any license question about source code is, as 
usual, the source code.  In ruby's case, its source code is in SVN at:


  svn co http://svn.ruby-lang.org/repos/ruby/trunk  ruby1.9

That's where you will find LEGAL which has probably the most up to date 
status of each file not entirely written by the ruby team.


If you need further clarification about a source file, you should ask 
probably in the ruby-core's mailing list.


Also, this is only about the (most popular and currently faster) C Ruby 
we are talking about.  There's several other ruby interpreters which are 
under other licenses.


To Brandon:  Sorry, yes, that was a mistype. I really meant Ruby is dual 
licensed as GPL and its own license.


Anyway... why are you guys so concerned about cmake's license?  To me, 
as long as the code is open source and forkable, that's all I care for 
cmake.  I'm not planning to make money selling a fork of cmake, borrow 
its source code, use cmake as a library nor embed it into another 
program, which are the reasons I might prefer a BSD/MIT license.




To be honest, the only compelling languages I've seen so far in this
discussion is lua and tcl.  This is because they are small and appear to
be ideal for embedding.



Sure.  That's from your POV.  For me, a language without good and easy 
OO is a no-no as experience tells me it will sooner or later run into 
scalability and maintainability issues.  That makes TCL and Lua to me 
only minimally better than cmake's language in the long run.


For me, I would accept either Python or Ruby as a better alternative, 
even if they are not as small.


TCL and Lua are only better for embedding if you were to need cmake to 
be multithreaded or if cmake would need to initialize a clean 
interpreter without quitting (two things, afaik, not needed or currently 
used in cmake).
Otherwise, there's not much difference with embedding Ruby, Python, etc. 
  Perl is the only language I would say that has a very difficult API 
for embedding.




Not that speed is super important, but I know of at least one hosting
provider making exceptions for ruby scripts, because they just take way
too long to run.


That's pretty funny.  Ruby (1.8) scripts run about the same speed as TCL 
(ie. neither one is known to be a speed daemon).  Ruby1.9 (to become the 
official ruby in 2008) runs at about the speed of Python (ie. much 
better than TCL).
Lua is certainly a faster language in terms of VM and numeric 
computations.  But for io, string, regex, etc. you are not likely to see 
a big difference.


The next link is *very* un-scientific and I don't endorse it.  But it is 
still an okay website to at least give you a very rough idea of performance:


http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=alllang=yarvlang2=python



--
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-07 Thread Juan Sanchez
I was reading exactly the link you sent, and the same one you accused
Brandon of not reading.  If there were supplemental materials, you
should have sent them.  I am not a lawyer.

To be honest, the only compelling languages I've seen so far in this
discussion is lua and tcl.  This is because they are small and appear to
be ideal for embedding.

Not that speed is super important, but I know of at least one hosting
provider making exceptions for ruby scripts, because they just take way
too long to run.

Juan

Gonzalo Garramuño wrote:
 Sanchez, Juan wrote:
 This part of the license would concern me.  Are all files of interest, 
 by other authors, guaranteed to be BSD friendly?

 
 
 Again, read LEGAL.  You will then find that:
 
 regex when used with Ruby it is Ruby licensed, based on Onigurama.
 utils is BSD, credit going to Lucent Technologies.
 gcis Public Domain (Boehmm), albeit now is so heavily modified 
 there's no resemblance to it any longer (probably the docs need updating).
 stis Public Domain.
 
 Other files may use Perl's Artistic License.
 
 


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-07 Thread Gonzalo Garramuño

Sanchez, Juan wrote:
This part of the license would concern me.  Are all files of interest, 
by other authors, guaranteed to be BSD friendly?





Again, read LEGAL.  You will then find that:

regex when used with Ruby it is Ruby licensed, based on Onigurama.
utils is BSD, credit going to Lucent Technologies.
gcis Public Domain (Boehmm), albeit now is so heavily modified 
there's no resemblance to it any longer (probably the docs need updating).

stis Public Domain.

Other files may use Perl's Artistic License.


--
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-07 Thread E. Wing
For interest, this topic has been brought up before.

http://public.kitware.com/pipermail/cmake-promote/2005-December/39.html
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-07 Thread Brandon Van Every
On Nov 7, 2007 8:55 PM, Gonzalo Garramuño [EMAIL PROTECTED] wrote:
 Sanchez, Juan wrote:
  This part of the license would concern me.  Are all files of interest,
  by other authors, guaranteed to be BSD friendly?

 Other files may use Perl's Artistic License.

That's the license I had read, that Ruby is like.  The Artistic
License.  Kind of a PITA, frankly.  I mean, yeah, you can put up with
it if the software really really does something for you, but I'm not
seeing what's so great about Ruby compared to other options to warrant
jumping through the legal hoops.  Seems like Ruby could stand a
license assignment cleanup, so that people don't have to worry about
needing an army of lawyers.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-05 Thread Gonzalo Garramuño

Ken Martin wrote:

I have looked at incorporating Lua into CMake as an alternate language.


Interesting.  You didn't by any chance used swig to wrap it?

I admit I would be curious to see that fork of cmake to study the changes.

Using swig right now would be the best approach, as with just a few swig 
rules (if any) it would allow any user to choose whatever language he 
feels like using.


Currently, swig supports all languages mentioned in this thread so far 
and it works pretty well for projects like cmake where its .h files keep 
changing.


Eventually one scripting language could end up becoming massively more 
popular and be adopted as a standard for cmake.  But I'm betting in 
the future that won't matter, as several vendors are developing tools or 
frameworks to offer data interchange across the major scripting languages.


--

For those that don't know Lua, Lua has a very similar syntax to non-OO 
ruby albeit parenthesis are required.  It is also very fast, small and, 
just like TCL, thread safe and built for embedding (python and ruby 
still struggle with threads).  LuaJIT is probably one of the fastest JIT 
compilers for a dynamic language under any platform.
Lua's uglyness is its OO support and syntax, which is closer to OO 
Javascript or Perl's.


--

P.S. Disclosure: I am swig's ruby maintainer.


--
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


RE: [CMake] improve the CMake language?

2007-11-05 Thread Sanchez, Juan
It is my understanding that a lot of the cmake modules are implemented in the 
cmake language?  It would be a big task to maintain multiple languages for the 
cmake modules.

While speed of a scripting language is interesting, I would expect 90% of the 
work would be done in the C++ part of cmake.  I would think BSD type licensing 
and compactness would be more important.

Juan

-Original Message-
From: [EMAIL PROTECTED] on behalf of Gonzalo Garramuño
Sent: Mon 11/5/2007 4:55 PM
To: Ken Martin; CMake ML; Sanchez, Juan
Subject: Re: [CMake] improve the CMake language?
 
Ken Martin wrote:
 I have looked at incorporating Lua into CMake as an alternate language.

Interesting.  You didn't by any chance used swig to wrap it?

I admit I would be curious to see that fork of cmake to study the changes.

Using swig right now would be the best approach, as with just a few swig 
rules (if any) it would allow any user to choose whatever language he 
feels like using.

Currently, swig supports all languages mentioned in this thread so far 
and it works pretty well for projects like cmake where its .h files keep 
changing.

Eventually one scripting language could end up becoming massively more 
popular and be adopted as a standard for cmake.  But I'm betting in 
the future that won't matter, as several vendors are developing tools or 
frameworks to offer data interchange across the major scripting languages.

--

For those that don't know Lua, Lua has a very similar syntax to non-OO 
ruby albeit parenthesis are required.  It is also very fast, small and, 
just like TCL, thread safe and built for embedding (python and ruby 
still struggle with threads).  LuaJIT is probably one of the fastest JIT 
compilers for a dynamic language under any platform.
Lua's uglyness is its OO support and syntax, which is closer to OO 
Javascript or Perl's.

--

P.S. Disclosure: I am swig's ruby maintainer.


-- 
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake



___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] improve the CMake language?

2007-11-05 Thread Gonzalo Garramuño

Brandon Van Every wrote:


I didn't realize that Ruby is GPLed.  http://www.ruby-lang.org/en/LICENSE.txt
Oh well, so much for embedding Ruby!


It isn't.  Where did you get that idea from !?  Brandon, you have a 
tendency to email FUD that is amazing... even when you provide links to 
text that clearly states exactly the opposite of what you say.


Ruby is distributed under a dual LGPL / Ruby License.  The Ruby License 
is a MIT-like license.
Some portions of ruby are not under that license (as they were not 
written by the author), but are either BSD (meaning you need to give 
proper credit) or public domain.


For proper info, refer to LEGAL in the ruby distribution.


--
Gonzalo Garramuño
[EMAIL PROTECTED]

AMD4400 - ASUS48N-E
GeForce7300GT
Kubuntu Edgy
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-05 Thread Brandon Van Every
On Nov 5, 2007 5:30 PM, Gonzalo Garramuño [EMAIL PROTECTED] wrote:
 Brandon Van Every wrote:
 
  I didn't realize that Ruby is GPLed.  
  http://www.ruby-lang.org/en/LICENSE.txt
  Oh well, so much for embedding Ruby!

 It isn't.  Where did you get that idea from !?  Brandon, you have a
 tendency to email FUD that is amazing... even when you provide links to
 text that clearly states exactly the opposite of what you say.

Hey man I was in a hurry, and at a glance, the Ruby license is clear
as mud.  I saw the word GPL at the top of that doc, and blasting
through the license text I thought I saw the typical GPLed terms.  I
see now I was mistaken.  I don't appreciate your indignation about FUD
though; you're not paying me to go over licenses with a fine toothed
comb.  If people say things that are incorrect - or that you think are
incorrect - you're free to correct them or disagree with them.  You
might also consider how you'd like people to react to your own
mistakes.

Clauses (2a 2b 3a 3b) are like a GPL, hence my confusion.  Clauses
(2d 3d) are a talk to the author escape hatch; a lot of people
aren't going to do that.  I see that clauses (2c 3c) give the do
whatever you like freedom - long as you ship original Ruby along with
your altered stuff.  That is probably acceptable to a lot of people,
but the bloat could be unacceptable for some embedded applications.
Also sometimes people are contractually stuck with no viral license
clauses as far as software they can use.

 Ruby is distributed under a dual LGPL / Ruby License.

That link says GPL, not LGPL.

 The Ruby License is a MIT-like license.

Hardly.  MIT is a simple license.  In addition to the complications
above, clause (4) leaves one wondering about some of the core
components.

The Ruby license, when seen through the lens of do what you want, is
like a more restrictive version of zlib/libpng.   In fact I'm sure
I've seen an OSI license of the form do what you want, but you must
also ship the originals, but I can't remember the name of it.

This isn't MIT / BSD.  Is it acceptable for CMake embedding?


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread david . karr
 From: Eric Noulard [EMAIL PROTECTED]:
 
 I used Java for 4+ years (all thoses years are overlapping :=)
 it was really pleased using it for cross platform GUI.
 And I was really disappointed because the java I  used
 was lacking generics such that I need to cast here and there when
 using container.

This may be a little off-topic, but generic types were added to Java at
least two years ago.  So, for example, you now can declare an object of
type VectorString.  Generic types are also useful for a lot more than
just avoiding casts when getting objects from containers.

 I hope I've already put you on the road of
 there is no FAR better language than other.

This is an excellent point.  Unlike any specific language feature, this
statement is not likely to be falsified by the language designers at any
time in the near future.

Personally, I find the macros of CMAKE a little awkward at times, but
when I want to do anything more sophisticated, I am very happy to write
a little helper script or program for CMAKE to invoke.  I converted the
build of one of my group's software projects to CMAKE a few years ago
and it's served us very well ever since, though we now have more than
1800 source code files distributed among nearly 50 libraries and
executables.

David Karr

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Bill Hoffman

Eric Noulard wrote:



CMAKE_LOAD_PLUGIN(TCL)

CMAKE_TCL(IN_VAR a
IN_VAR b
OUT_VAR g
OUT_VAR h
SCRIPT_STRING any tcl code)

or

CMAKE_TCL(IN_VAR a
IN_VAR b
OUT_VAR g
OUT_VAR h
SCRIPT_FILE /path/to/tcl_script.tcl)



You can do that today.  CMake already supports loaded commands via c++ 
plugins. I would not recommend it, execute_process is much safer to use 
(shared library plugins have to match the compiler abi of the running 
cmake 64/32 bit issues can cause problems.)


-Bill
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Juan E. Sanchez

On Fri, 2 Nov 2007, Brandon Van Every wrote:


On Nov 1, 2007 11:40 PM, Sanchez, Juan [EMAIL PROTECTED] wrote:


 Tcl is a simple language, and is well understood.  It has already been
ported to about every platform out there.  You don't need QT or wxWidgets,
because the Tk extensions of it already work.


Tcl's popularity is also on the wane.  I don't think hitching CMake's
post to Tcl is a good marketing idea.  I'd pick Ruby, for the regex
support.  Hey it's better 'n' Perl 6.  :-)


 Many features in the CMake language don't really work the way people
expect, or are not documented, or both.


I agree that much can be improved about the documentation.  I'd like
to note, however, that some improvements are happening in CVS right
now.  Enough to make me think that Kitware does take documentation
seriously and that strategically, documentation problems are going to
be addressed.  I've given a lot of gloom and doom about documentation,
that if the status quo is maintained, in 3 years' time CMake will
start to lose customers as other build systems catch up in technical
capability.  But I do think 3 years is the level of urgency of the
problem.  We'd all like things right this second, but open source has
its resource limitations.  Recently I suggested organizing Google
Summer Of Code projects to address such things.


 If anyone would like to fork cmake with me, I'm game.

 Features:

 Tcl frontend featuring modern dynamic language constructs and consistent
syntax.

 C pre-processor based dependency scanner

 Accurate and up to date documentation

 Focus on getting build system that works, because all of the language
constructs have already been written.

 Developers who are not hostile to ideas concerning improvements to the
language.


To make real improvements in all of those areas, you'd need a lot of
funding.  What kind of mandate do you have?  There's not much point in
saying everything's gonna be better if you don't have the labor.

Second question, if you do have serious development resources at your
disposal: what improvements in CMake would cause you to stick around
rather than going your own way?  Is a position of compromise possible?



This would be a community effort.  I don't have the resources to 
strike out on my own.  I like using cmake.  The language is kind of a 
bitter pill for people in my organization to swallow.


The most important item on my proposed feature list is the Tcl 
frontend.


Juan






Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake





Juan Sanchez
[EMAIL PROTECTED]
800-538-8450 Ext. 54395
512-602-4395


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Bill Hoffman

Sanchez, Juan wrote:

Hello Bill,

add_library(foo SHARED foo.cxx)

won't work.


I meant it worked in the current cmake language, I know it does not work 
in tcl.





Developers who are not hostile to ideas concerning improvements to the 
language.


I am not hostile to ideas about improvements to the language, I am 
hostel to changing to a new language.  The requirements are that we 
don't bring any new major dependencies other than a standard c++ 
compiler.  Also, that we remain backwards compatible.


-Bill
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


re: [CMake] improve the CMake language?

2007-11-02 Thread Brandon Van Every
On Nov 2, 2007 6:04 AM, Eric Noulard [EMAIL PROTECTED] wrote:

   Many features in the CMake language don't really work the way people
  expect, or are not documented, or both.

 Documentation is not as good as it should be
 but re-implementing something (either TCL, Python, Perl)
 won't make the documentation better.

Actually for language syntax issues, which CMake certainly has, the
documentation would become tremendously better.  And Kitware wouldn't
have to maintain that documentation at all.  There would be a
bazillion Python or Ruby examples to choose from out on the net.  In
another thread I've asked about adding PCRE.  One of the main benefits
I see in PCRE is it's well-documented, whereas the CMake regex engine
is not.

I agree that how to use this CMake function to do XYZ won't improve
by re-implementing CMake in another language.  It's an orthogonal
problem.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Brandon Van Every
On Nov 2, 2007 9:04 AM, Gonzalo Garramuño [EMAIL PROTECTED] wrote:
 Brandon Van Every wrote:
 
  My concern is that if the status quo is maintained, CMake script will
  always be ugly to program with.

 Yes.  No doubt about that.  It is already uglier to program with than
 most modern scripting languages.
 Personally I think you need to see cmake as what it is: a tool to create
 makefiles.  Not a scripting language.

But I think this is the wrong idea from a marketing standpoint.
Programmers are programmers.  They don't care what they're
programming.  If you tell 'em to suck it up, they don't wanna hear
it.  They'll just go use something that's more pleasant to work with,
if it exists somewhere.  And if it doesn't, they'll write it!  I don't
see any inherent reason why Makefile programming has to be tons uglier
than regular programming.  It's just the historical accident of
where the implementation is at.  Sooner or later, someone's going to
decide that Makefile programming doesn't have to suck.  Then that
Makefile language is going to become popular.  It could be CMake, with
a little planning.

 If you are doing lots of file,
 regex or string manipulation... alarms should be going off.  You should
 probably write that as a small tool in ruby, perl or python and have
 cmake just call the command.

Yes I probably should have written my (Autoconf + GMake) -- CMake
translator in Ruby.  But I didn't know Ruby and I did know CMake
script.  I wanted to see how far I could get with CMake regexes and
macro constructions, and I found out.  You know, frankly, I could get
a lot farther with some pretty basic language improvements.  Like a
better regex engine, macro string passing that doesn't mess up the
escapes, and lexical scoping.  I don't need fancy dynamic scripting
stuff to scale up CMake quite a bit more.  Currently my code is 3
macros deep.

   I'm not just talking about SCons and so forth.

 python scons, ruby's rake and jam are (currently) cmake's closest
 contenders.

Don't forget Ant.  As far as I'm concerned, a CMake contender is any
build system that is very popular and can supplant the jobs that CMake
does.

  we'll write our own
  custom build system in our favorite scripting language.  It happens in
  the game industry all the time.
 

 Does it?  I work in a related industry and I never heard of such.  Only
 very large companies can afford that kind of luxury.

Game developers are an extremely immature lot.  They will write new
build systems and new scripting languages because they can.  Meaning,
because they've fooled someone into paying them to do it.  The game
developer postmortems are filled with stories of we made this
scripting language, it did things X Y Z for us, but it took forever
and we really suffered from tools immaturity.  Yet the industry keeps
doing it over and over again.  You could say that basically it's an
industry of technical ferment.  I hang out on the sweng-gamedev
mailing list, and I'm forever hearing about guys who think a
cross-platform build system is hacking Visual Studio .sln files to
export values to other platforms.  They'll drive everything from
Visual Studio or some such.  Scripting language gurus are a real
threat to software stability.  They're getting paid, and like a
standing army they're gonna find a way to get used.

 That being said, the gaming industry is also mostly oriented towards one
 or two platforms, so the need for a comprehensive multiplatform system
 like cmake is also probably overkill.

The mainstream game industry is oriented towards Windows, Sony
Playstation3, Nintendo Wii, and XBox360.  They need comprehensive
cross-platform build systems and it appears that none exist yet.  So
it is with an eye towards stalking them that I ask these questions.
I'd like to get paid to do things related to game industry concerns,
seeing as how I'm an indie game developer.  Rather than the orthogonal
open source pays my bills stuff I'm currently doing.

Mainstream game titles often have multi-million $ budgets and teams of
100 people working on them.  Granted, the bulk of those are artists.
Asset management systems are a big deal in the game industry.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread David Cole
Existing CMake plugin :
EXECUTE_PROCESS(COMMAND tclsh $ENV{HOME}/myTclScript.tcl OUTPUT_VARIABLE
ov RESULT_VARIABLE rv)

You are responsible for making sure tclsh is callable for your project's
users...
Similarly for python, ruby, perl, shell script, or *whatever*
Or, if you want it done as part of the build, same command line but with
ADD_CUSTOM_COMMAND...

Because there is such diversity out there and people have so many varied
opinions of which language would be ideal to use, CMake *already provides*
the ability to shell out to any script processor you would like.

CMake's -P scripting ability is actually quite powerful for what it is right
now, though with its own quirks, and incremental improvements are bound to
come over time, but...

...in the mean time, just use whatever scripting languauge you want. Make
macros that demonstrate how to run scripts at configure time and at build
time with your favorite script processor and submit them to the Wiki for
others to benefit from if you feel so inclined.


2 cents,
David


On 11/2/07, Eric Noulard [EMAIL PROTECTED] wrote:

 Hi all,

 I'm interested in the idea of a more powerful CMake scripting.
 I'm convinced I lack powerful scripting sometimes (may be many times)
 but my opinion is it's not CMake's script job.

 2007/11/2, Sanchez, Juan [EMAIL PROTECTED]:
 
   Tcl is a simple language, and is well understood.  It has already been
  ported to about every platform out there.  You don't need QT or
 wxWidgets,
  because the Tk extensions of it already work.

 I did some Tcl, Perl and Python.
 Tcl syntax is really awkward at first sight.
 You get used to it but not as fast Python.
 I did some 7 years of Fortran programming (mostly F77 and F90)
 then 10+ years of C++.
 Fortran is far better than C++ for many things.
 The converse is true too :=)
 I used Java for 4+ years (all thoses years are overlapping :=)
 it was really pleased using it for cross platform GUI.
 And I was really disappointed because the java I  used
 was lacking generics such that I need to cast here and there when
 using container.

 I hope I've already put you on the road of
 there is no FAR better language than other.

 Personally if I were to extend or re-implement CMake
 scripts I'll do it in Python because I _currently_
 find it far more powerful than Tcl and pretty widespread too.
 (I had even looked at SCons for this reason before using CMake).

 But the fact is I don't think I _NEED_ a python
 implementation of CMake but may be I would like
 a Python plugin (or Tcl or Ruby or ...) for CMake.

 This way we can keep the CMake scripting language
 small and bug free (someday) and take the Python plugin
 escape door when needed.

   Many features in the CMake language don't really work the way people
  expect, or are not documented, or both.

 Documentation is not as good as it should be
 but re-implementing something (either TCL, Python, Perl)
 won't make the documentation better.

 I know you'll inherit a clean syntax definition
 (iff you ever chose python :=) but you won't get
 the up to date documentation for your freshly
 implemented functions.

 As for bug I'm sure you know that fresh new software
 usually have many more bugs than old one.

   If anyone would like to fork cmake with me, I'm game.
 
   Features:
 
   Tcl frontend featuring modern dynamic language constructs and
 consistent
  syntax.
 
   C pre-processor based dependency scanner
 
   Accurate and up to date documentation
 
   Focus on getting build system that works, because all of the language
  constructs have already been written.
 
   Developers who are not hostile to ideas concerning improvements to the
  language.

 I am convinced of the usefullness of improvement of the language
 but I'm not convinced that a fork is the way to go.

 What would you think of

 CMAKE_LOAD_PLUGIN(TCL)

 CMAKE_TCL(IN_VAR a
 IN_VAR b
 OUT_VAR g
 OUT_VAR h
 SCRIPT_STRING any tcl code)

 or

 CMAKE_TCL(IN_VAR a
 IN_VAR b
 OUT_VAR g
 OUT_VAR h
 SCRIPT_FILE /path/to/tcl_script.tcl)

 In both cases you can run Tcl code from within CMake scripts
 you give IN_VAR and you get OUT_VAR.

 All this is my own opinion though :=)
 --
 Erk
 ___
 CMake mailing list
 CMake@cmake.org
 http://www.cmake.org/mailman/listinfo/cmake

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] improve the CMake language?

2007-11-02 Thread Eric Noulard
2007/11/2, David Cole [EMAIL PROTECTED]:
 Existing CMake plugin :
 EXECUTE_PROCESS(COMMAND tclsh $ENV{HOME}/myTclScript.tcl OUTPUT_VARIABLE
 ov RESULT_VARIABLE rv)

Yes you are right I can do that.

 You are responsible for making sure tclsh is callable for your project's
 users...

That why I would tell explicitly I want to use TCL/python...
CMAKE_LOAD_PLUGIN(TCL)

But again I may do it with some CMake MACRO.


 Because there is such diversity out there and people have so many varied
 opinions of which language would be ideal to use, CMake *already provides*
 the ability to shell out to any script processor you would like.

I agree on this, no single language may suits everyone's need or taste.

 CMake's -P scripting ability is actually quite powerful for what it is right
 now, though with its own quirks, and incremental improvements are bound to
 come over time, but...

Regarding CMake scripting you end-up with the choice
of adding Feature to CMake or decide it's better to escape to
perl,python, tcl ...

 ...in the mean time, just use whatever scripting languauge you want. Make
 macros that demonstrate how to run scripts at configure time and at build
 time with your favorite script processor and submit them to the Wiki for
 others to benefit from if you feel so inclined.

OK I will do that.

-- 
Erk
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Brandon Van Every
On Nov 2, 2007 11:49 AM, Juan E. Sanchez [EMAIL PROTECTED] wrote:
 On Fri, 2 Nov 2007, Brandon Van Every wrote:
 
  To make real improvements in all of those areas, you'd need a lot of
  funding.  What kind of mandate do you have?  There's not much point in
  saying everything's gonna be better if you don't have the labor.

 This would be a community effort.  I don't have the resources to
 strike out on my own.

Without a bunch of gold bars at your disposal, I'd say the CMake
community isn't going anywhere.  Best to work on compromises within
the community rather than sweeping changes.

 I like using cmake.  The language is kind of a
 bitter pill for people in my organization to swallow.

 The most important item on my proposed feature list is the Tcl
 frontend.

I know everyone champions their favorite scripting language, but my
opinion is, if you go that route you're doomed.  Pick something that
programmers consider modern and sexy, or you're never going to get the
mindshare.  A key consideration that dominates my own thinking as of
late: Who's gonna pay me to know language X ?  I went back to C++
for this reason.  I'm sorry but whatever its merits, Tcl is not a
resume skill nowadays.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Juan Sanchez
Brandon Van Every wrote:
 On Nov 2, 2007 11:49 AM, Juan E. Sanchez [EMAIL PROTECTED] wrote:
 On Fri, 2 Nov 2007, Brandon Van Every wrote:
 To make real improvements in all of those areas, you'd need a lot of
 funding.  What kind of mandate do you have?  There's not much point in
 saying everything's gonna be better if you don't have the labor.
 This would be a community effort.  I don't have the resources to
 strike out on my own.
 
 Without a bunch of gold bars at your disposal, I'd say the CMake
 community isn't going anywhere.  Best to work on compromises within
 the community rather than sweeping changes.
 
 I like using cmake.  The language is kind of a
 bitter pill for people in my organization to swallow.

 The most important item on my proposed feature list is the Tcl
 frontend.
 
 I know everyone champions their favorite scripting language, but my
 opinion is, if you go that route you're doomed.  Pick something that
 programmers consider modern and sexy, or you're never going to get the
 mindshare.  A key consideration that dominates my own thinking as of
 late: Who's gonna pay me to know language X ?  I went back to C++
 for this reason.  I'm sorry but whatever its merits, Tcl is not a
 resume skill nowadays.

Actually Tcl is still quite popular.  Many commercial electronic design
automation (EDA) companies use Tcl frontends, and EDA is a billion
dollar industry.  Active State still seems to be doing well peddling
their supported versions of Tcl as well.

Apart from its consistent syntax, another big selling point is its truly
free license.

I'd be willing to entertain any other suggestions for scripting
languages, as long as:
1. the syntax is consistent
2. the language is not bloated
3. the language does not require to much dressing up with parenthesis
and commas
4. the license is BSD-like in nature.

Note that OOP is more of a detriment than a benefit in my concept of
simple scripting languages.  Obfuscation by encapsulation is not a
benefit in a flat file architecture.

Regards,

Jun


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Gonzalo Garramuño

Brandon Van Every wrote:


Is it worth trying to address these problems and make CMake a better
scripting language? 


Yes, but currently as a low priority.  CMake first needs to have an 
extremely solid cross-compile toolchain and support as many systems as 
possible first without any major issues.

CMake is already very close to getting there.  I think in a year or so
this will be achieved without major issues.  Already the cmake2.5 
internals and fixes are way better than the 2.4 branch.


At that point it may indeed be worth forking cmake to improve or change
its language.



My concern is that if the status quo is maintained, CMake script will
always be ugly to program with.  


Yes.  No doubt about that.  It is already uglier to program with than
most modern scripting languages.
Personally I think you need to see cmake as what it is: a tool to create
makefiles.  Not a scripting language.  If you are doing lots of file, 
regex or string manipulation... alarms should be going off.  You should 
probably write that as a small tool in ruby, perl or python and have 
cmake just call the command.



This will put it at a disadvantage
compared to build systems written in Python, Ruby, or Perl.  


Perl and TCL -- no.  Perl because of the sygils and bad OO.  TCL due to 
bad OO, brackets and weak regex.


Ruby?  Certainly.  Its metalanguage allows for the creation of a next 
generation make system.  But nobody is, afaik, actually working on one. 
 Most rubyists are happy with rake, which is only a very simple make 
system and does not take full advantage of ruby meta language strengths.


Python?  Probably, but use of parenthesis still remains more cumbersome 
than what it should be (not as bad as cmake, thou).


I do agree that sooner or later, the cmake macro language will become a 
disadvantage ( how soon?  who knows--- I give it 3 to 5 years or even 
more ).


The syntax of the language also will only matter when something matches 
cmake's features first.  In the short run, I'm unaware of anything that 
will be successful at this.


Currently all competing open source build systems are inferior feature
wise to cmake.  And cmake has had a lot more tuning in terms of properly
setting compiler flags than any other build system I've used.

Build systems built on top of scripting languages also suffer from being 
a tad bloated.  Unless you plan to use the scripting language later for 
something else, you end up installing tons of libs the build system 
probably never uses (networking, web, ssh, ftp, etc).


Another issue with other popular systems built on scripting languages is
that they usually try to replace not just a tool like 'cmake' or
'autotools' but they replace 'make' also.  Which is a neat idea, but 
also a potential mistake.  This often makes troubleshooting build 
problems harder, as the build systems internals are often not as well 
documented as the api.  One of the big strengths of cmake is that both 
the modules and the C++ is very readable.
When you replace make, developers only familiar with IDEs are completely 
left out, unlike a tool like cmake.


Another issue with scons, rake, etc. are that they are still slower than
cmake's approach.  For small projects, that may not matter, but today on 
large projects you still can notice.  Even a difference of 10 seconds 
adds up to a lot when you consider the hundreds of iterations a C/C++ 
project has to go through to reach a stable state.


The last headache with a build system built on top of a scripting
language is that as soon as a better language appears, the build system
may need to be rewritten or thrown out.

CMake may indeed eventually need to replace its macro language, but all 
the C++ core and platform specific stuff can always remain regardless of 
the user front-end.  And thankfully, cmake's internals are really very 
clean C++ code, so I am confident that even if Kitware were to refuse 
changing their language once lots of people start feeling the need for 
doing so, someone else can step up to the challenge.


 I'm not just talking about SCons and so forth.

python scons, ruby's rake and jam are (currently) cmake's closest 
contenders.  But they are not good or comprehensive enough to 
distinguish themselves (yet, at least).
Python gives you a better language overall, but its syntax also gets in 
the way when writing rules.  Rake is usually better, but it is a very 
barebones make system (think cmake sans modules).



we'll write our own
custom build system in our favorite scripting language.  It happens in
the game industry all the time.



Does it?  I work in a related industry and I never heard of such.  Only
very large companies can afford that kind of luxury.

There usually is not enough time to create your build system.  And the
last thing you want is to then have to keep maintaining that build
system, which is something 5 to 30 developers will use and must always work.

That being said, the gaming industry is also mostly 

Re: [CMake] improve the CMake language?

2007-11-02 Thread Eric Noulard
Hi all,

I'm interested in the idea of a more powerful CMake scripting.
I'm convinced I lack powerful scripting sometimes (may be many times)
but my opinion is it's not CMake's script job.

2007/11/2, Sanchez, Juan [EMAIL PROTECTED]:

  Tcl is a simple language, and is well understood.  It has already been
 ported to about every platform out there.  You don't need QT or wxWidgets,
 because the Tk extensions of it already work.

I did some Tcl, Perl and Python.
Tcl syntax is really awkward at first sight.
You get used to it but not as fast Python.
I did some 7 years of Fortran programming (mostly F77 and F90)
then 10+ years of C++.
Fortran is far better than C++ for many things.
The converse is true too :=)
I used Java for 4+ years (all thoses years are overlapping :=)
it was really pleased using it for cross platform GUI.
And I was really disappointed because the java I  used
was lacking generics such that I need to cast here and there when
using container.

I hope I've already put you on the road of
there is no FAR better language than other.

Personally if I were to extend or re-implement CMake
scripts I'll do it in Python because I _currently_
find it far more powerful than Tcl and pretty widespread too.
(I had even looked at SCons for this reason before using CMake).

But the fact is I don't think I _NEED_ a python
implementation of CMake but may be I would like
a Python plugin (or Tcl or Ruby or ...) for CMake.

This way we can keep the CMake scripting language
small and bug free (someday) and take the Python plugin
escape door when needed.

  Many features in the CMake language don't really work the way people
 expect, or are not documented, or both.

Documentation is not as good as it should be
but re-implementing something (either TCL, Python, Perl)
won't make the documentation better.

I know you'll inherit a clean syntax definition
(iff you ever chose python :=) but you won't get
the up to date documentation for your freshly
implemented functions.

As for bug I'm sure you know that fresh new software
usually have many more bugs than old one.

  If anyone would like to fork cmake with me, I'm game.

  Features:

  Tcl frontend featuring modern dynamic language constructs and consistent
 syntax.

  C pre-processor based dependency scanner

  Accurate and up to date documentation

  Focus on getting build system that works, because all of the language
 constructs have already been written.

  Developers who are not hostile to ideas concerning improvements to the
 language.

I am convinced of the usefullness of improvement of the language
but I'm not convinced that a fork is the way to go.

What would you think of

CMAKE_LOAD_PLUGIN(TCL)

CMAKE_TCL(IN_VAR a
IN_VAR b
OUT_VAR g
OUT_VAR h
SCRIPT_STRING any tcl code)

or

CMAKE_TCL(IN_VAR a
IN_VAR b
OUT_VAR g
OUT_VAR h
SCRIPT_FILE /path/to/tcl_script.tcl)

In both cases you can run Tcl code from within CMake scripts
you give IN_VAR and you get OUT_VAR.

All this is my own opinion though :=)
-- 
Erk
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-02 Thread Brandon Van Every
On Nov 2, 2007 1:01 PM, Juan Sanchez [EMAIL PROTECTED] wrote:

 Brandon Van Every wrote:
  On Nov 2, 2007 11:49 AM, Juan E. Sanchez [EMAIL PROTECTED] wrote:
  On Fri, 2 Nov 2007, Brandon Van Every wrote:
  To make real improvements in all of those areas, you'd need a lot of
  funding.  What kind of mandate do you have?  There's not much point in
  saying everything's gonna be better if you don't have the labor.
  This would be a community effort.  I don't have the resources to
  strike out on my own.
 
  Without a bunch of gold bars at your disposal, I'd say the CMake
  community isn't going anywhere.  Best to work on compromises within
  the community rather than sweeping changes.
 
  I like using cmake.  The language is kind of a
  bitter pill for people in my organization to swallow.
 
  The most important item on my proposed feature list is the Tcl
  frontend.
 
  I know everyone champions their favorite scripting language, but my
  opinion is, if you go that route you're doomed.  Pick something that
  programmers consider modern and sexy, or you're never going to get the
  mindshare.  A key consideration that dominates my own thinking as of
  late: Who's gonna pay me to know language X ?  I went back to C++
  for this reason.  I'm sorry but whatever its merits, Tcl is not a
  resume skill nowadays.

 Actually Tcl is still quite popular.  Many commercial electronic design
 automation (EDA) companies use Tcl frontends, and EDA is a billion
 dollar industry.  Active State still seems to be doing well peddling
 their supported versions of Tcl as well.

 Apart from its consistent syntax, another big selling point is its truly
 free license.

 I'd be willing to entertain any other suggestions for scripting
 languages, as long as:
 1. the syntax is consistent
 2. the language is not bloated
 3. the language does not require to much dressing up with parenthesis
 and commas
 4. the license is BSD-like in nature.

I didn't realize that Ruby is GPLed.  http://www.ruby-lang.org/en/LICENSE.txt
Oh well, so much for embedding Ruby!

Python is essentially BSD + requires that you make brief note of any
changes to Python in derivative works.
http://www.python.org/download/releases/2.5.1/license/  I don't know
how embedded-friendly Python is, particularly in the presence of other
Python installations.  Python regexes are not inherently part of the
syntax; of course, this is true of CMake script as well.  Python
certainly wins popularity contests, and a Python CMake done well would
put SCons out of business + maybe steal their developers.

Lua is MIT licensed.  http://www.lua.org/license.html  Lua is
extremely embedded-friendly, that's its sole reason for existing.  Lua
has brand identity in the world of modern geekdom but is not,
generally speaking, anywhere near as popular as Python or Ruby.  It is
quite popular in the game industry, however, because of a perception
that it's lean and mean.  I have no idea how beneficial or
detrimental the language syntax is, I've never used it.  Lua's pattern
matching has character classes but not the | branching operator.
http://www.lua.org/manual/5.1/manual.html#5.4.1

That's pretty much it for the list of suspects.  I wouldn't hitch the
CMake truck to Perl.

 Note that OOP is more of a detriment than a benefit in my concept of
 simple scripting languages.  Obfuscation by encapsulation is not a
 benefit in a flat file architecture.

You can write your non-OOP code however you want, and leave others to
do what they want.  It doesn't matter as far as off-the-shelf
languages go.


Cheers,
Brandon Van Every
___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-01 Thread Bill Hoffman

Brandon Van Every wrote:


My concern is that if the status quo is maintained, CMake script will
always be ugly to program with.  This will put it at a disadvantage
compared to build systems written in Python, Ruby, or Perl.  I'm not
just talking about SCons and so forth.  I'm talking about a shop
deciding, hey, screw this off-the-shelf stuff, we'll write our own
custom build system in our favorite scripting language.  It happens in
the game industry all the time.

Your thoughts?




CMake is a build system.  In an ideal world, the language would be 
purely declarative.  Basically, you would describe things you want to 
build, and CMake would build them.  In practice, this is too 
restrictive, and a small amount of programming makes things easier. I 
never wanted CMake to replace perl, ruby, python or any other language. 
I wanted CMake to not depend on another language being installed.  CMake 
only depends on a C++ compiler being around, so CMake can be built. 
Since CMake was developed for ITK (a c++ toolkit), I was adding no 
additional restrictions to the build process. The scripting stuff 
actually came out of a desire to automate the testing system without the 
use of tcl as was required in earlier version of Dart. I am sure the 
CMake language will be tweaked here and there, but if you have a big 
programming job that has nothing to do with building software, then 
CMake is the wrong choice.


So, I think that if something is hard to build because of the CMake 
language, then we should fix it.  People should use CMake because it is 
really easy to build complex things with, and not because it has a great 
language. The hard stuff should be done in C++ commands.


For example, this small line of CMake code:

add_library(foo SHARED foo.cxx)

does some very complicated stuff as it builds shared libraries on many 
platforms, and different IDE's.  And most of that is not done with the 
CMake language, it is done with the more powerful C++ language.  BTW, I 
hope this does not become a long discussion, but I am sure it will...



-Bill

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


RE: [CMake] improve the CMake language?

2007-11-01 Thread Sanchez, Juan
Tcl is a nice language for implementing declarative commands.  It can be easily 
built on about every platform out there, and the language rules are well known. 
 It is small, and very easy to compile a standalone Tcl based interpreter with 
the CMake commands built in.  The user would not need to have any language 
installed, you could package the source with CMake or make it part of the cmake 
binary you distribute.  It is freely distributable and has a BSD license.

add_library(foo SHARED foo.cxx)

could become
add_library {foo SHARED foo.cxx}

or even
add_library -name foo -type SHARED foo.cxx

Please see:
http://en.wikipedia.org/wiki/Tcl

for a description of this language.  It would be very easy to implement a macro 
as a procedure.


I would be happy to participate in any effort to port the cmake commands to a 
Tcl interpreter.  Please let me know if you are interested.

Regards,

Juan



-Original Message-
From: [EMAIL PROTECTED] on behalf of Bill Hoffman
Sent: Thu 11/1/2007 8:03 PM
To: Brandon Van Every
Cc: cmake@cmake.org
Subject: Re: [CMake] improve the CMake language?
 
Brandon Van Every wrote:

 My concern is that if the status quo is maintained, CMake script will
 always be ugly to program with.  This will put it at a disadvantage
 compared to build systems written in Python, Ruby, or Perl.  I'm not
 just talking about SCons and so forth.  I'm talking about a shop
 deciding, hey, screw this off-the-shelf stuff, we'll write our own
 custom build system in our favorite scripting language.  It happens in
 the game industry all the time.
 
 Your thoughts?
 
 

CMake is a build system.  In an ideal world, the language would be 
purely declarative.  Basically, you would describe things you want to 
build, and CMake would build them.  In practice, this is too 
restrictive, and a small amount of programming makes things easier. I 
never wanted CMake to replace perl, ruby, python or any other language. 
I wanted CMake to not depend on another language being installed.  CMake 
only depends on a C++ compiler being around, so CMake can be built. 
Since CMake was developed for ITK (a c++ toolkit), I was adding no 
additional restrictions to the build process. The scripting stuff 
actually came out of a desire to automate the testing system without the 
use of tcl as was required in earlier version of Dart. I am sure the 
CMake language will be tweaked here and there, but if you have a big 
programming job that has nothing to do with building software, then 
CMake is the wrong choice.

So, I think that if something is hard to build because of the CMake 
language, then we should fix it.  People should use CMake because it is 
really easy to build complex things with, and not because it has a great 
language. The hard stuff should be done in C++ commands.

For example, this small line of CMake code:

add_library(foo SHARED foo.cxx)

does some very complicated stuff as it builds shared libraries on many 
platforms, and different IDE's.  And most of that is not done with the 
CMake language, it is done with the more powerful C++ language.  BTW, I 
hope this does not become a long discussion, but I am sure it will...


-Bill

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake



___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] improve the CMake language?

2007-11-01 Thread Bill Hoffman

Sanchez, Juan wrote:
Tcl is a nice language for implementing declarative commands.  It can be 
easily built on about every platform out there, and the language rules 
are well known.  It is small, and very easy to compile a standalone Tcl 
based interpreter with the CMake commands built in.  The user would not 
need to have any language installed, you could package the source with 
CMake or make it part of the cmake binary you distribute.  It is freely 
distributable and has a BSD license.




We are not doing CMake in Tcl!

We specifically avoided it at the start.  From what I can tell it is 
declining, and the compile a standalone thing was never that easy, and 
we (Kitware) have plenty of experience with tcl.  Please don't bother to 
refute this ...  ( I am ranting a bit).  CMake would require Tcl to 
build, right now it only needs C++, and I aim to keep it that way.


I will say this.  Unless someone is going to fork CMake, I do not think 
there will be a new language.  I guess I should just stay on the side 
lines until the current change the language thread is over... SIGH...


-Bill


___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] improve the CMake language?

2007-11-01 Thread Bill Hoffman

Sanchez, Juan wrote:
Tcl is a nice language for implementing declarative commands.  It can be 
easily built on about every platform out there, and the language rules 
are well known.  It is small, and very easy to compile a standalone Tcl 
based interpreter with the CMake commands built in.  The user would not 
need to have any language installed, you could package the source with 
CMake or make it part of the cmake binary you distribute.  It is freely 
distributable and has a BSD license.


add_library(foo SHARED foo.cxx)

could become
add_library {foo SHARED foo.cxx}

or even
add_library -name foo -type SHARED foo.cxx



I can't help myself, I have to respond  :)


Or it could be:

add_library(foo SHARED foo.cxx)

Hey, wait, that already works...  :)

The point is you don't need tcl, python, or ruby to add add a library. 
You need a simple language, and I want it to work with only a c++ 
compiler and its standard libraries.  So, when someone wants to build a 
c++ program with CMake on a new platform, they don't first have to port 
(tcl/python/ruby/XXX), the just need to have a c++ compiler, which they 
should have if they are building a c++ application.  It is sort of a 
prerequisite to have a c++ compiler to build a c++ application, so we 
know it will be there.


Sorry Juan, your suggestion is valid, and perhaps I should create a FAQ 
entry like: Why the CMake Language?  So, I can point to it when this 
comes up.


-Bill

___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake


RE: [CMake] improve the CMake language?

2007-11-01 Thread Sanchez, Juan
Hello Bill,

add_library(foo SHARED foo.cxx)

won't work.

Parenthesis are not part of the standard syntax, and worth getting Tcl to 
understand them.

Tcl is a simple language, and is well understood.  It has already been ported 
to about every platform out there.  You don't need QT or wxWidgets, because the 
Tk extensions of it already work.

Many features in the CMake language don't really work the way people expect, or 
are not documented, or both.

If anyone would like to fork cmake with me, I'm game.

Features:

Tcl frontend featuring modern dynamic language constructs and consistent syntax.

C pre-processor based dependency scanner

Accurate and up to date documentation

Focus on getting build system that works, because all of the language 
constructs have already been written.

Developers who are not hostile to ideas concerning improvements to the language.

Regards,

Juan



-Original Message-
From: Bill Hoffman [mailto:[EMAIL PROTECTED]
Sent: Thu 11/1/2007 9:18 PM
To: Sanchez, Juan
Cc: Bill Hoffman; Brandon Van Every; cmake@cmake.org
Subject: Re: [CMake] improve the CMake language?
 
Sanchez, Juan wrote:
 Tcl is a nice language for implementing declarative commands.  It can be 
 easily built on about every platform out there, and the language rules 
 are well known.  It is small, and very easy to compile a standalone Tcl 
 based interpreter with the CMake commands built in.  The user would not 
 need to have any language installed, you could package the source with 
 CMake or make it part of the cmake binary you distribute.  It is freely 
 distributable and has a BSD license.
 
 add_library(foo SHARED foo.cxx)
 
 could become
 add_library {foo SHARED foo.cxx}
 
 or even
 add_library -name foo -type SHARED foo.cxx
 

I can't help myself, I have to respond  :)


Or it could be:

add_library(foo SHARED foo.cxx)

Hey, wait, that already works...  :)

The point is you don't need tcl, python, or ruby to add add a library. 
You need a simple language, and I want it to work with only a c++ 
compiler and its standard libraries.  So, when someone wants to build a 
c++ program with CMake on a new platform, they don't first have to port 
(tcl/python/ruby/XXX), the just need to have a c++ compiler, which they 
should have if they are building a c++ application.  It is sort of a 
prerequisite to have a c++ compiler to build a c++ application, so we 
know it will be there.

Sorry Juan, your suggestion is valid, and perhaps I should create a FAQ 
entry like: Why the CMake Language?  So, I can point to it when this 
comes up.

-Bill




___
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake