incubator-lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mattmann, Chris A (388J)" <chris.a.mattm...@jpl.nasa.gov>
Subject Re: [lucy-dev] Slow migration to Makefiles
Date Thu, 18 Nov 2010 14:47:52 GMT
Hi Marvin,


On Nov 16, 2010, at 12:16 PM, Marvin Humphrey wrote:

> On Tue, Nov 16, 2010 at 09:39:20AM -0800, Mattmann, Chris A (388J) wrote:
> 
>>> Over time, we should expect to migrate a lot of the build structure to
>>> Makefiles.  I hate make, but it's the lowest common denominator.
>> 
>> Is that strictly true? I mean, the reality is whatever you could do in make,
>> could be done in e.g., Ant, right? 
> 
> Sure -- but we could also do everything in Perl/Ruby/Python/etc.  The primary
> advantage that Make has over Ant and all of those is that it's already there
> on every system.  

It seems to me that Ant is on most *nix systems (just like Make), it's just whether it's configured
or not by default or enabled for an install package.

> 
> The point of migrating to Makefiles would be to share build routines across
> host bindings.  Building Lucy for C or Python shouldn't require Perl, or Java,
> or whatever.  For now, we have to put up with a Perl dependency, but I would
> like to eliminate that, at least for simple building of the library as a user
> would.  (Developers will continue to have to deal with the Perl dependency,
> but after I rewrite Clownfish::Parser to be based on the Lemon parser
> generator rather than Parse::RecDescent, they'll only need core Perl.)

Hmmm, possibly, though I wouldn't liken building Lucy to PLs -- that doesn't seem like a fair
comparison. In reality, building Lucy likely requires some "build tool", be it Make, or Ant,
or Python buildouts, or setuptools, or whatever, independent of whatever PL Lucy is implemented
in.

> 
> We don't want to depend on Make exclusively for the build IMO -- the
> contortions necessary for cross-platform compatibility when solving complex
> problems aren't worth it.  Instead, I think we should keep the Makefiles
> simple, but use scripts to generate input for them.  Probably such dev helper
> scripts will continue to be written in Perl, like the update_snowstem.pl I
> just added last week.

Build scripts generating other build scripts just seems like bloat to me. Of course, like
i mentioned I haven't stepped up to rewrite the Lucy build system, so I'm just pontificating
at this point. ;)

> 
> I don't think it's reasonable to expect Simon or Robert to fully grok a
> sophisticated Module::Build subclass like trunk/perl/buildlib/Lucy/Build.pm.
> However, I do think that it's reasonable to expect Lucy committers to
> understand shared Makefiles, and I also think it's reasonable to expect them
> to understand simple Perl scripts like update_snowstem.pl.

Seems to me that the complexity of either one of your two examples (Module::Bulid or Make)
aren't too far apart. Also, SImon *is* a Lucy committer, so we should definitely make sure
he gets how to build the project, especially if we want to grow beyond you, Nate, or Peter
being the only folks who know Lucy or what's going on with it...

Cheers,
Chris

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chris Mattmann, Ph.D.
Senior Computer Scientist
NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
Office: 171-266B, Mailstop: 171-246
Email: Chris.Mattmann@jpl.nasa.gov
WWW:   http://sunset.usc.edu/~mattmann/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adjunct Assistant Professor, Computer Science Department
University of Southern California, Los Angeles, CA 90089 USA
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Mime
View raw message