Brian Dessent wrote:
> Bruce Korb wrote:
> 
>> So, please send me a config test to be able to differentiate the
>> first-born "funopen" from the one of CygWin heritage.  I'll add an
>> "is there a libio.h header?" guard around the #include.
> 
> Have a look at the attached.  I haven't actually been able to test this
> patch past the point at which I've verified that the configure tests
> work and seem to set the correct #define, because I have come to the
> conclusion that it's impossible to actually bootstrap autogen unless
> you're Bruce Korb.

Others have, but I agree it isn't easy.  It is a consequence of my
stumbling into problems, beating on it until it works and then going
on about other things and not polishing.  It also bit rots because
the autotools have changed during the past decade.

> I looked in autogen-5.9.4/config, saw that ag_macros.m4 is generated
> from misc.def.  So I edited misc.def adding the initial version of a
> configure test in the patch, as well as editing

I've applied what you eventually did to that file.

> autogen-5.9.4/agen/fmemopen.c.  I rebuilt with "make", and nothing had
> really changed.  I scoured the Makefiles and determined that there were
> absoltely no rules to regenerate ag_macros.m4 in a release tarball
> whatsoever, which meant no way to actually test changes to misc.def.

Once upon a time, long ago and far away, I had rules for rebuilding
the stuff integrated into Makefile.am.  After spending many hours
trying to figure out why builds would either go into infinite rebuild
loops or rebuild everything every time, I got fed up.   It was just too
hard.  So, instead, I removed all the bootstrap crap from the make rules.
"bootstrap" should _only_ be run from a fresh checkout of the sources.
I'll make that clearer.

> So I checked out a CVS tree and ported over the patches I was working on
> from the 5.9.4 release tree.  I ran the bootstrap script and things
> started going.  After a while it stopped with an error about a missing
> 'allbut' command.  I then spent a couple of hours scouring google
> results, the Debian package database, and mailing list archives.  I
> found absolutely nothing except a lot of irrelevant hits.  Looking at
> the bootstrap.dir file I could infer what 'allbut' was supposed to do so
> I wrote a replacement in perl.

That is a bug.  Sorry.  That and "mk-fwd" need to be tested for before
actually using them.

> And yet again I got a failure for a missing command called char-mapper.

Oh, dear.  That is a more interesting problem.  It isn't ready for prime
time.  I used it to build character classes.  I noticed some parsing
inconsistencies in that sometimes "$" would be part of a word and sometimes
not.  I wanted consistency.  So, there is now exactly one collection
of characters that are used to form particular kinds of tokens.
"isspace" and "isalnum" etc. become too cumbersome when you have (way?)
too many categories.  In the end, I use this, some of which are redundant
with respect to "isalnum" et al.

#define IS_LOWER_CASE_CHAR(_c)     is_opt_char_cat_char((_c), 0x00001)
#define IS_UPPER_CASE_CHAR(_c)     is_opt_char_cat_char((_c), 0x00002)
.........
#define IS_SUFFIX_CHAR(_c)         is_opt_char_cat_char((_c), 0x1000F)
#define IS_SUFFIX_FMT_CHAR(_c)     is_opt_char_cat_char((_c), 0x3000F)
#define IS_FALSE_TYPE_CHAR(_c)     is_opt_char_cat_char((_c), 0x40000)

#ifdef AUTOOPTS_INTERNAL
opt_char_cat_mask_t const opt_char_cat[128] = {
  /*x00*/ 0x40000, /*x01*/ 0x00000, /*x02*/ 0x00000, /*x03*/ 0x00000,
...........
  /* @ */ 0x0A800, /* A */ 0x02812, /* B */ 0x02812, /* C */ 0x02812,
  /* D */ 0x02812, /* E */ 0x02812, /* F */ 0x42812, /* G */ 0x02802,
.............
  /* x */ 0x02801, /* y */ 0x02801, /* z */ 0x02801, /* { */ 0x0A000,
  /* | */ 0x0A800, /* } */ 0x0A000, /* ~ */ 0x0A800, /*x7F*/ 0x00000
};
So, I don't want to maintain this (or figure it out) by hand....

> Can you *PLEASE* document in CVS somewhere what these commands allbut,
> mk-fwd, mk-str2enum, and char-mapper are and if they are not publicly
> available, state that it's not possible to bootstrap from CVS at all? 
> It would really have saved me a lot of time and hair loss.
> 
> Thank you, and I'm very sorry if I come off as overly grouchy.

I don't think you're overly grouchy.  Included in CVS is a magic file:
noag-boot.sh which contains all the generated files.  I've added a
stronger reference to it in the README file:

> ***  Bootstrap note: ***
> 
> I have some private tools referenced in the various bootstrap scripts.
> Unless you have these tools, bootstrap won't work for you.  I intend
> to fix this as time permits.  Meanwhile, there is also a tarball in CVS
> of all the bootstrap-generated files:
>    noag-boot.sh

Also, Brian, I do generally try to respond to my emails.  (I have been a
bit busy recently, so this is an exception.)  Please send an email before
frustration levels get too high.  Again, sorry for your troubles.

Regards, Bruce

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Register now and save $200. Hurry, offer ends at 11:59 p.m., 
Monday, April 7! Use priority code J8TLD2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Autogen-users mailing list
Autogen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/autogen-users

Reply via email to