unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* snarfer guard macro name decision: SCM_MAGIC_SNARFER
@ 2002-03-13  7:51 Thien-Thi Nguyen
  2002-03-13  9:26 ` Thien-Thi Nguyen
  0 siblings, 1 reply; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-13  7:51 UTC (permalink / raw)


this was used in 1.4.

libguile-1.6 .c source uses it as #ifndef, however both snarf.h and
guile-snarf have been in the meantime changed to not define this.

1.6 snarfing differs from 1.4 primarily in that there are now two kinds:
init and doc, as opposed to merely init.  in defining the names of the
specialization-trigger macros, we now remember usage of this old friend
(i.e., also as guard).

in the end, it is better to migrate self-guard naming internally, and
include that info in the data stream only (snarfing programs generate
program fragments opaque to all re-snarfing).

so, this is sort of a good-bye from public view for SCM_MAGIC_SNARFER
the cpp macro.  [band plays.]

anyone know what are the official namespaces allowed for programs that
munge the cpp macro space?  [macro looks up, wisened and ready for the
inevitable coup.  it is prepared to don a blade, but it has been heard
that the really crafty old dictators (the ones who stayed alive) mingled
and mewed and were the only ones allowed to slit their own throats.]

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13  7:51 snarfer guard macro name decision: SCM_MAGIC_SNARFER Thien-Thi Nguyen
@ 2002-03-13  9:26 ` Thien-Thi Nguyen
  2002-03-13 19:15   ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-13  9:26 UTC (permalink / raw)


   From: Thien-Thi Nguyen <ttn@giblet.glug.org>
   Date: Tue, 12 Mar 2002 23:51:38 -0800

   in the end, it is better to migrate self-guard naming internally, and
   include that info in the data stream only (snarfing programs generate
   program fragments opaque to all re-snarfing).

unfortunately, this is not completely realizable w/o reducing
functionality.  when invoked w/ known output file:

  guile-snarf -o foo.x foo.c		# ("-o OUTFILE" is new)

snarfing can recognize #include "foo.x" and such, filtering them from
the input, but this cannot be supported when writing to stdout (unknown
output file).

so SCM_MAGIC_SNARFER rules forever!  [the Author is now duly shot. x-p]

on the other hand...

when output is written to stdout, caller typically must check return
value and delete the already written but bogus file, if the return value
is false.  this is all handled by guile-snarf -o, so why ask for this
pain?  to be precise (old vs new):

  guile-snarf $(snarfcppopts) $< > $@ || { rm $@; false; }
  guile-snarf -o $@ $(snarfcppopts) $<

this point is already conceded by the comments in guile-snarf re temp
file usage, the question is: is it ok to not support writing to stdout?

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13  9:26 ` Thien-Thi Nguyen
@ 2002-03-13 19:15   ` Marius Vollmer
  2002-03-13 21:28     ` Thien-Thi Nguyen
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-13 19:15 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    From: Thien-Thi Nguyen <ttn@giblet.glug.org>
>    Date: Tue, 12 Mar 2002 23:51:38 -0800
> 
>    in the end, it is better to migrate self-guard naming internally, and
>    include that info in the data stream only (snarfing programs generate
>    program fragments opaque to all re-snarfing).
> 
> unfortunately, this is not completely realizable w/o reducing
> functionality.

The basic problem is that during snarfing, the generated *.x file does
not get created soon enough so that it can be included while scanning
the original source, right?

Would it work to just make sure that the file exists (possibly empty
or with a comment in it) when cpp is run?

I.e, just move the last "echo" in guile-snarf before the CPP
invocation.

> when output is written to stdout, caller typically must check return
> value and delete the already written but bogus file, if the return value
> is false.  this is all handled by guile-snarf -o, so why ask for this
> pain?  to be precise (old vs new):
> 
>   guile-snarf $(snarfcppopts) $< > $@ || { rm $@; false; }
>   guile-snarf -o $@ $(snarfcppopts) $<
> 
> this point is already conceded by the comments in guile-snarf re temp
> file usage, the question is: is it ok to not support writing to stdout?

When it is easy to do (and I think it is), we should support writing
to stdout.  Offering the "-o" option is a very good thing, and we
should encourage people to use it, of course.

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 19:15   ` Marius Vollmer
@ 2002-03-13 21:28     ` Thien-Thi Nguyen
  2002-03-13 22:00       ` Rob Browning
  2002-03-14 19:09       ` Marius Vollmer
  0 siblings, 2 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-13 21:28 UTC (permalink / raw)
  Cc: guile-devel

   From: Marius Vollmer <mvo@zagadka.ping.de>
   Date: 13 Mar 2002 20:15:48 +0100

   The basic problem is that during snarfing, the generated *.x file does
   not get created soon enough so that it can be included while scanning
   the original source, right?

yes.  (but this is only one issue.)

   Would it work to just make sure that the file exists (possibly empty
   or with a comment in it) when cpp is run?

yes, but only if you know the name of the output file.

   I.e, just move the last "echo" in guile-snarf before the CPP
   invocation.

this is not guaranteed to work; when invoked w/ "foo > out.x", the shell
does indeed create out.x first, satisfying most CPPs' requirements for
out.x existing to be #included.  however, it looks like the aix cpp
needs this file to be non-empty, which cannot be done when executing
echo and cpp (in any sequence) under the process "guile-snarf" since the
shell may buffer subprocess output.

you can require the makefile to "echo > foo.x" before invoking
guile-snarf, as another workaround, but all these workarounds (including
the "|| { rm $@; false; }" cruft) indicate to me that guile-snarf usage
should be at a higher abstraction...

   When it is easy to do (and I think it is), we should support writing
   to stdout.

it is easy to do but not easy to use.  i've come to think guile-snarf
usage is in the same vein as gcc wrt output files -- if things go wrong,
you want the program to handle things rather than having to clean up
after it, manually.  you don't see makefiles with rules like:

   gcc -c $< > $@ || { rm $@; false; }

(although maybe secretly everyone wishes this were the case?!)  doc
snarfing, on the other hand, practically begs further processing, so
writing to stdout for that process is much more desirable.  we'll get to
that sooner or later...

see below for commentary (not yet checked in -- testing continues) for
guile-snarf.

thi


______________________________________
# Usage: guile-snarf [--compat=1.4] [-o OUTFILE] INFILE [CPP-OPTIONS ...]
#
# Process INFILE using the C pre-processor and some other programs.
# Write output to a file, named OUTFILE if specified, or STEM.x if
# INFILE looks like STEM.c, and no OUTFILE is specified.  Ignore
# lines from the input matching grep(1) regular expression:
#
#       ^#include ".*OUTFILE"
#
# If there are errors during processing, OUTFILE is not written
# and guile-snarf returns non-zero.
#
# Optional arg "--compat=1.4" means emulate guile-1.4 guile-snarf.
# This option is not fully tested -- see Guile reference manual.
#
# If env var CPP is set, use that value instead of the C pre-processor
# determined at guile configure-time: "@CPP@".

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 21:28     ` Thien-Thi Nguyen
@ 2002-03-13 22:00       ` Rob Browning
  2002-03-13 22:58         ` Thien-Thi Nguyen
  2002-03-14 19:09       ` Marius Vollmer
  1 sibling, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-13 22:00 UTC (permalink / raw)
  Cc: mvo, guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> see below for commentary (not yet checked in -- testing continues)
> for guile-snarf.

Is there any easy way I can get back the 1.5 functionality of a few
months ago (i.e. is your stuff in a good enough state to check in for
even light use, or is there perhaps some temporary hack I can use for
right now?)

I ask because I'm suddenly in a situation where need to use 1.5 with
gnome-guile again, and I'd prefer to use the current source rather
than checking out an older 1.5 -- I'm not positive, but I think
gnome-guile worked with 1.5 as of a month or two ago...

Thanks

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 22:00       ` Rob Browning
@ 2002-03-13 22:58         ` Thien-Thi Nguyen
  2002-03-14  0:12           ` Thien-Thi Nguyen
  2002-03-14  5:56           ` Thien-Thi Nguyen
  0 siblings, 2 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-13 22:58 UTC (permalink / raw)
  Cc: mvo, guile-devel

   From: Rob Browning <rlb@defaultvalue.org>
   Date: Wed, 13 Mar 2002 16:00:33 -0600

   Is there any easy way I can get back the 1.5 functionality of a few
   months ago (i.e. is your stuff in a good enough state to check in for
   even light use, or is there perhaps some temporary hack I can use for
   right now?)

   I ask because I'm suddenly in a situation where need to use 1.5 with
   gnome-guile again, and I'd prefer to use the current source rather
   than checking out an older 1.5 -- I'm not positive, but I think
   gnome-guile worked with 1.5 as of a month or two ago...

see below for guile-snarf.in snapshot.  feedback welcome!

to play, modify Makefile.am to look like:

  snarfcppopts = $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)

  .c.x:
	./guile-snarf --compat=1.4 $< $(snarfcppopts)

(this is what i've done locally, except w/o the "--compat=1.4" for HEAD
and branch_release-1-6.  WARNING: the old_school_snarf is incomplete.)

thi

____________________________________
#!/bin/sh
# Extract the initialization actions for builtin things.
#
#  Copyright (C) 1996, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA

# Commentary:

# Usage: guile-snarf [--compat=1.4] [-o OUTFILE] INFILE [CPP-OPTIONS ...]
#
# Process INFILE using the C pre-processor and some other programs.
# Write output to a file, named OUTFILE if specified, or STEM.x if
# INFILE looks like STEM.c and no OUTFILE is specified.  Ignore
# lines from the input matching grep(1) regular expression:
#
#       ^#include ".*OUTFILE"
#
# If there are errors during processing, delete OUTFILE and exit with
# non-zero status.
#
# Optional arg "--compat=1.4" means emulate guile-1.4 guile-snarf.
# This option is not fully tested -- see Guile reference manual.
#
# If env var CPP is set, use its value instead of the C pre-processor
# determined at Guile configure-time: "@CPP@".

# Code:

[ x$DEBUG = x1 ] && set -x

old_school_snarf ()
{
$cpp -DSCM_MAGIC_SNARFER "$@" > ${temp} && cpp_status=true
grep "^ *SCM__I" ${temp} | sed -e "s/^ *SCM__I//" -e 's/SCM__D.*$//g'
# TODO TODO TODO: here we need to handle changes like:
#                 scm_make_gsubr -> scm_c_define_gsubr
#                 (probably sed is ok)
}

modern_snarf ()
{
$cpp -DSCM_MAGIC_SNARF_INITS "$@" > ${temp} && cpp_status=true
grep "^ *\^ *\^" ${temp} | sed -e "s/^ *\^ *\^//"
}

## main

# process command line
if [ x"$1" = x--help ] ; then
    @AWK@ '/^#.Commentary:/,/^#.Code:/' $0 | grep -v Code: \
        | sed -e 1,2d -e 's/^. *//g'
    exit 0
fi
if [ x"$1" = x--compat=1.4 ]
    then snarf=old_school_snarf ; shift
    else snarf=modern_snarf
fi
if [ x"$1" = x-o ]
    then outfile=$2 ; shift ; shift ; infile=$1 ; shift
    else infile=$1 ; shift ; outfile=`basename $infile .c`.x
fi

[ x"$infile" = x ] && { echo $0: No input file ; exit 1 ; }
[ ! -f "$infile" ] && { echo $0: No such file: $infile ; exit 1 ; }

# set vars and handler -- handle CPP override
cpp_status=false
temp="/tmp/snarf.$$"
if [ x"$CPP" = x ] ; then cpp="@CPP@" ; else cpp="$CPP" ; fi 
self_blind_regexp='^#include ".*'`basename $outfile`'"'
clean_infile=clean-`basename $infile`
trap "rm -f $temp $clean_infile" 0 1 2 15

# do the snarfing -- output something extra for needy cpp programs (AIX)
{ echo "/* source: $infile */" ;
  echo "/* cpp-options: $@ */" ;
  grep -v "$self_blind_regexp" $infile > $clean_infile ;
  $snarf "$@" $clean_infile ;
} > $outfile

# zonk outfile if errors occurred
if $cpp_status ; then
    exit 0
else
    rm -f $outfile
    exit 1
fi

# guile-snarf ends here



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 22:58         ` Thien-Thi Nguyen
@ 2002-03-14  0:12           ` Thien-Thi Nguyen
  2002-03-14  5:44             ` Rob Browning
  2002-03-14 18:48             ` Marius Vollmer
  2002-03-14  5:56           ` Thien-Thi Nguyen
  1 sibling, 2 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-14  0:12 UTC (permalink / raw)


   From: Thien-Thi Nguyen <ttn@giblet.glug.org>
   Date: Wed, 13 Mar 2002 14:58:06 -0800

   WARNING: the old_school_snarf is incomplete.

ok, --compat=1.4 requirements is now clearer to me: when this is used,
the environment is all new (new snarf.h, new scm_c_define_gsubr, etc).
so really the compatibility is on the input (recognizing SCM_VCELL as
SCM_VARIABLE, for example), instead of on the output as implied by the
TODO comment in the guile-snarf.in post.

below is first usable stab for anyone who wants to try guile-snarf on
old code.  i'm taking a guess w/ SCM_CONST_LONG (feedback requested).
cut and paste as appropriate...

thi

______________________________________
## snarf funcs: $1 must be the input file and must be mutable (yuk!)

modern_snarf ()
{
${cpp} -DSCM_MAGIC_SNARF_INITS "$@" > ${temp} && cpp_status=true
grep "^ *\^ *\^" ${temp} | sed -e "s/^ *\^ *\^//"
}

old_school_snarf ()
{
sed -e 's/SCM_CONST_LONG/SCM_GLOBAL_VCELL_INIT/g' \
    -e 's/SCM_GLOBAL_VCELL_INIT/SCM_GLOBAL_VARIABLE_INIT/g' \
    -e 's/SCM_GLOBAL_VCELL/SCM_GLOBAL_VARIABLE/g' \
    -e 's/SCM_VCELL_INIT/SCM_VARIABLE_INIT/g' \
    -e 's/SCM_VCELL/SCM_VARIABLE/g' \
    $1 > ${temp}
cp ${temp} $1
modern_snarf "$@"
}

##### ---------8<-------------------
##### make sure snarf funcs' $1 is the input file:

-  $snarf "$@" $clean_infile ;
+  $snarf $clean_infile "$@" ;

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  0:12           ` Thien-Thi Nguyen
@ 2002-03-14  5:44             ` Rob Browning
  2002-03-14 18:48             ` Marius Vollmer
  1 sibling, 0 replies; 32+ messages in thread
From: Rob Browning @ 2002-03-14  5:44 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> below is first usable stab for anyone who wants to try guile-snarf on
> old code.  i'm taking a guess w/ SCM_CONST_LONG (feedback requested).
> cut and paste as appropriate...

Thanks.  I really appreciate your efforts here, though keep in mind
that (at least in my opinion), it's OK for us to require users to
modify their code to work with a newer, documented snarfer in the new
release of guile.  People are going to have to conditionalize things
either way, whether it's in the argument to guile-snarf, or in their
own code, and they're also going to have to accomodate all the other
API changes, so I'm not sure we need to spend too much time time
trying to emulate the old behavior.  Backward compatibility is good,
especially when there's a large community to consider, but I doubt
that's the case here, and maintaining two interfaces has it's own
attendant costs.

In any case, thanks again for trying to figure these bits out.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 22:58         ` Thien-Thi Nguyen
  2002-03-14  0:12           ` Thien-Thi Nguyen
@ 2002-03-14  5:56           ` Thien-Thi Nguyen
  2002-03-14  6:58             ` Rob Browning
  2002-03-14 23:40             ` Marius Vollmer
  1 sibling, 2 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-14  5:56 UTC (permalink / raw)


   From: Thien-Thi Nguyen <ttn@giblet.glug.org>
   Date: Wed, 13 Mar 2002 14:58:06 -0800

   see below for guile-snarf.in snapshot.  feedback welcome!

everything is checked in now.  please feel free to read the new docs,
try the new guile-snarf, and complain loudly so weirdnesses can be fixed
(when the going gets weird, the weird turn pro)...

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  5:56           ` Thien-Thi Nguyen
@ 2002-03-14  6:58             ` Rob Browning
  2002-03-14  7:17               ` Rob Browning
  2002-03-14 23:40             ` Marius Vollmer
  1 sibling, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-14  6:58 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> everything is checked in now.  please feel free to read the new docs,
> try the new guile-snarf, and complain loudly so weirdnesses can be fixed
> (when the going gets weird, the weird turn pro)...

Great.  I'll suspect I'll be your first customer :> I'll try
gnome-guile in the morning.

I got 1.4 working for the code I was having trouble with after
removing (read-enable 'positions) in the offending case, but this just
exposes a later failure, one I've seen before during 1.4's make check

  scm_must_realloc called with arg bignum, was gh_symbol2newstr

If I can get gnome-guile to work with 1.5 now, I'll try it and see if
it tells me anything more.

Thanks again.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  6:58             ` Rob Browning
@ 2002-03-14  7:17               ` Rob Browning
  2002-03-14  9:32                 ` Thien-Thi Nguyen
  0 siblings, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-14  7:17 UTC (permalink / raw)
  Cc: guile-devel

Rob Browning <rlb@defaultvalue.org> writes:

> Thien-Thi Nguyen <ttn@giblet.glug.org> writes:
>
>> everything is checked in now.  please feel free to read the new docs,
>> try the new guile-snarf, and complain loudly so weirdnesses can be fixed
>> (when the going gets weird, the weird turn pro)...
>
> Great.  I'll suspect I'll be your first customer :> I'll try
> gnome-guile in the morning.

Actually, I can't build guile 1.5 ATM.  I'll investigate tomorrow.

Making all in guile-readline
make[2]: Entering directory `/home/rlb/dev/guile/core-1.5/guile-readline'
../libguile/guile-snarf -DHAVE_DLFCN_H=1 -DHAVE_LIBREADLINE=1 -DHAVE_SIGINTERRUPT=1 -DHAVE_RL_CLEAR_SIGNALS=1 -DHAVE_RL_CLEANUP_AFTER_SIGNAL=1 -DHAVE_RL_FILENAME_COMPLETION_FUNCTION=1 -DHAVE_RL_PRE_INPUT_HOOK=1 -DGUILE_SIGWINCH_SA_RESTART_CLEARED=1 -DHAVE_RL_GETC_FUNCTION=1 -DHAVE_STRDUP=1  -I.. -I./..  -g -O2 readline.c > readline.x \
|| { rm readline.x; false; }
make[2]: *** [readline.x] Error 1
make[2]: Leaving directory `/home/rlb/dev/guile/core-1.5/guile-readline'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/rlb/dev/guile/core-1.5'
make: *** [stamp/guile-build] Error 2

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  7:17               ` Rob Browning
@ 2002-03-14  9:32                 ` Thien-Thi Nguyen
  0 siblings, 0 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-14  9:32 UTC (permalink / raw)
  Cc: guile-devel

   From: Rob Browning <rlb@defaultvalue.org>
   Date: Thu, 14 Mar 2002 01:17:22 -0600

   Actually, I can't build guile 1.5 ATM.  I'll investigate tomorrow.
   [guile-readline not updated]

thanks for the bug report.  guile-readline/Makefile.am updated.

here's a command:

find -name Makefile.am \
  -exec grep -l '^.c.x' '{}' \; \
  -exec grep -l snarfcppopts '{}' \;

that prints out all known good Makefile.am files (twice).
for me this results in:

./guile-readline/Makefile.am
./guile-readline/Makefile.am
./libguile/Makefile.am
./libguile/Makefile.am
./srfi/Makefile.am
./srfi/Makefile.am

now is as a good time as any to seed the thought that we can save a lot
of keypresses by moving identical machinery into am/.  actually this
thought was there at am/ creation but i didn't apply it fully.  a missed
opportunity (the first of many).

obviously between slavish restraint and inopportune opportunism lies
some happy balance.  the state of the world is that people who benefit
from artificial restrictions to cultural development (including code)
would have you believe those myths that make up the machine:
  freedom is slavery
  war is peace
  ignorance is strength
the last is the first to be easily proven in the minds of many, when the
many love themselves because they are many.

grinding hate and grinding love both turn the soul to dust.

guile development
no matter the weed intake
a refuge from dust

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  0:12           ` Thien-Thi Nguyen
  2002-03-14  5:44             ` Rob Browning
@ 2002-03-14 18:48             ` Marius Vollmer
  2002-03-14 20:44               ` Thien-Thi Nguyen
  1 sibling, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-14 18:48 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> old_school_snarf ()
> {
> sed -e 's/SCM_CONST_LONG/SCM_GLOBAL_VCELL_INIT/g' \
>     -e 's/SCM_GLOBAL_VCELL_INIT/SCM_GLOBAL_VARIABLE_INIT/g' \
>     -e 's/SCM_GLOBAL_VCELL/SCM_GLOBAL_VARIABLE/g' \
>     -e 's/SCM_VCELL_INIT/SCM_VARIABLE_INIT/g' \
>     -e 's/SCM_VCELL/SCM_VARIABLE/g' \
>     $1 > ${temp}
> cp ${temp} $1
> modern_snarf "$@"
> }

Don't do this.  First, SCM_VCELL and SCM_VARIABLE are not the same
thing.  You can't substitute one for the other.  (Likewise for the
substitutions.)  Second, we already keep proper backward compatibility
in the C code itself:

    #if (SCM_DEBUG_DEPRECATED == 0)

    #define SCM_CONST_LONG(c_name, scheme_name,value) \
    SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))

etc...

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-13 21:28     ` Thien-Thi Nguyen
  2002-03-13 22:00       ` Rob Browning
@ 2002-03-14 19:09       ` Marius Vollmer
  2002-03-14 22:43         ` Thien-Thi Nguyen
  1 sibling, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-14 19:09 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    I.e, just move the last "echo" in guile-snarf before the CPP
>    invocation.
> 
> this is not guaranteed to work; when invoked w/ "foo > out.x", the shell
> does indeed create out.x first, satisfying most CPPs' requirements for
> out.x existing to be #included.

Sorry, I was confused.  I still am, for that matter.  How can it
happen that during

    guile-snarf foo.c >foo.x

the file foo.x does not exist?  It should get created by the shell
before guile-snarf is executed.

I remember seeing problems with non-existent *.x files way back then,
but I can't remember the details.  Looking at the code in guile-gtk,
it mighta just as well been an issue with the dependency computation
used by an old version of automake.

> however, it looks like the aix cpp needs this file to be non-empty,
> which cannot be done when executing echo and cpp (in any sequence)
> under the process "guile-snarf" since the shell may buffer
> subprocess output.

This is a specific problem on AIX, and the workaround need only work
on AIX, so we only need to worry about this when AIX does in fact
buffer echoes.  I would be surprised if it does...

>    When it is easy to do (and I think it is), we should support writing
>    to stdout.
> 
> it is easy to do but not easy to use.

Yes, but it is still easier not to change existing code that makes use
of the old behavior of guile-snarf.

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 18:48             ` Marius Vollmer
@ 2002-03-14 20:44               ` Thien-Thi Nguyen
  2002-03-14 23:35                 ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-14 20:44 UTC (permalink / raw)
  Cc: guile-devel

   From: Marius Vollmer <mvo@zagadka.ping.de>
   Date: 14 Mar 2002 19:48:55 +0100

   Don't do this.  First, SCM_VCELL and SCM_VARIABLE are not the same
   thing.  You can't substitute one for the other.  (Likewise for the
   substitutions.)

oops my bad, i didn't understand the macros well enough.  what can you
use then, if you're interested in the long term?

   Second, we already keep proper backward compatibility in the C code
   itself:

       #if (SCM_DEBUG_DEPRECATED == 0)

       #define SCM_CONST_LONG(c_name, scheme_name,value) \
       SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))

these are not available in HEAD branch, which is where i did the
original digging (thinking that perhaps snarfing macros are no longer in
flux, but now i see that's not the case).

they are indeed in branch_release-1-6.

so now i'm confused.  is each guile release going to change these names
to something else and yank some previous name?  why isn't SCM_VCELL in
HEAD branch snarf.h?  how do you propose to handle the situation where a
user has SCM_VCELL but would like to use guile-1.8?

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 19:09       ` Marius Vollmer
@ 2002-03-14 22:43         ` Thien-Thi Nguyen
  2002-03-14 23:31           ` Rob Browning
  2002-03-15 21:12           ` Marius Vollmer
  0 siblings, 2 replies; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-14 22:43 UTC (permalink / raw)
  Cc: guile-devel

   From: Marius Vollmer <mvo@zagadka.ping.de>
   Date: 14 Mar 2002 20:09:36 +0100

   > this is not guaranteed to work; when invoked w/ "foo > out.x", the shell
   > does indeed create out.x first, satisfying most CPPs' requirements for
   > out.x existing to be #included.

   Sorry, I was confused.  I still am, for that matter.  How can it
   happen that during

       guile-snarf foo.c >foo.x

   the file foo.x does not exist?  It should get created by the shell
   before guile-snarf is executed.

wrt when foo.x is created, we're saying the same thing.  (the "this is
not guaranteed to work" applies to the whole design -- where we need to
regard mere file availability as insufficient.)

   This is a specific problem on AIX, and the workaround need only work
   on AIX, so we only need to worry about this when AIX does in fact
   buffer echoes.  I would be surprised if it does...

the AIX problem is not that its shell buffers echo, but that its cpp
(reportedly) doesn't like to #include an empty .x file.  shells (of any
platform) buffering subprocess output could be regarded as a problem,
but is generally accepted (and desirable for obvious reasons), so we
need to re-examine our usage.

here's a simple program that tests the relevant behavior:

 #!/bin/sh
 echo hi
 cat zz

save to file z, chmod +x z, and invoke it like "z > zz".
what do you see?  on my system i see:

 cat: zz: input file is output file

and the program exits w/ non-zero status value.  substitute cat w/ some
other program that eventually needs to read zz, and it is no surprise if
that program fails.  thus, i conclude that in general this kind of usage
is the wrong way to go about things, not because cat failed, but because
this style forces us to know the intracacies of each program (e.g.,
"test -f" works, "test -s" works sometimes, etc), which is a PITA to
determine and maintain.  big lose.

we can special-case for AIX but that way lies madness.  the approach
i've taken is to look at the AIX problem as an additional constraint
that when satisfied should not burden other platforms.

   Yes, but it is still easier not to change existing code that makes use
   of the old behavior of guile-snarf.

here, the code that needs changing is primarily in makefiles, which are
not as big a pain to update as C source, there being fewer makefiles
than source files typically.

(if someone installs a new guile (and new guile-snarf), they need to
modify the makefile to enable some compatibility anyway.  in the process
if they don't take advantage of the less-crufty new usage and demand
"support" for making them do more work, rather than question their
dubious judgement (and unslackful ethics) i suppose my response would be
to say that guile-snarf was never documented in the first place, and be
done w/ it.)

on the other hand, i am eager to resolve the SCM_VCELL removal issue in
favor of allowing minimal changes to C source.

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 22:43         ` Thien-Thi Nguyen
@ 2002-03-14 23:31           ` Rob Browning
  2002-03-15 21:12           ` Marius Vollmer
  1 sibling, 0 replies; 32+ messages in thread
From: Rob Browning @ 2002-03-14 23:31 UTC (permalink / raw)
  Cc: mvo, guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> on the other hand, i am eager to resolve the SCM_VCELL removal issue in
> favor of allowing minimal changes to C source.

For at least the next release of guile, it's unlikely that we're going
to have completely smooth transitions -- guile has a lot of
accumulated cruft, some from it's origins, and some because until
recently we were on a very different (and ambiguous) path with respect
to the gh_ interface, an interface which now should be going away in
it's *entirety* in the not too distant future.  Heck until we finish
the _I_ _i_ renamings, there wasn't even any way for anyone to *know*
when they were using soemthing they shouldn't have been, but that
doesn't mean we're planning to support the entire exposed interface
going forward.

IMO the process of dropping all this cruft and cleaning things up may
be a bit painful, but I think it's far better than maintaining all of
it into the indefinite future, and this shouldn't be a continual
problem.  Once we finish one or two more releases with heavy cleanup,
guile should be much less jarring from release to release.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 20:44               ` Thien-Thi Nguyen
@ 2002-03-14 23:35                 ` Marius Vollmer
  2002-03-15  4:26                   ` Thien-Thi Nguyen
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-14 23:35 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    From: Marius Vollmer <mvo@zagadka.ping.de>
>    Date: 14 Mar 2002 19:48:55 +0100
> 
>    Don't do this.  First, SCM_VCELL and SCM_VARIABLE are not the same
>    thing.  You can't substitute one for the other.  (Likewise for the
>    substitutions.)
> 
> oops my bad, i didn't understand the macros well enough.  what can you
> use then, if you're interested in the long term?

The long term macro is SCM_VARIABLE.

>    Second, we already keep proper backward compatibility in the C code
>    itself:
> 
>        #if (SCM_DEBUG_DEPRECATED == 0)
> 
>        #define SCM_CONST_LONG(c_name, scheme_name,value) \
>        SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))
> 
> these are not available in HEAD branch, which is where i did the
> original digging (thinking that perhaps snarfing macros are no longer in
> flux, but now i see that's not the case).
> 
> they are indeed in branch_release-1-6.
> 
> so now i'm confused.  is each guile release going to change these names
> to something else and yank some previous name?

Not necessarily.

> why isn't SCM_VCELL in HEAD branch snarf.h?

It is deprecated in the 1.6 branch and all things that are deprecated
in 1.6 are already removed from HEAD.  It is deprecated in the 1.6
branch because the whole concept of vcells has been deprecated.  This
has been done to clean up a confusing between glocs and structs and to
make the memoized code be a proper Scheme data structure.  Also, some
bindings where done with variables, and some not.  Now all bindings
are done with variables which makes for a better integration of the
module system into the rest of Guile.

> how do you propose to handle the situation where a user has
> SCM_VCELL but would like to use guile-1.8?

He should remove all uses of vcells and switch to variables.

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14  5:56           ` Thien-Thi Nguyen
  2002-03-14  6:58             ` Rob Browning
@ 2002-03-14 23:40             ` Marius Vollmer
  1 sibling, 0 replies; 32+ messages in thread
From: Marius Vollmer @ 2002-03-14 23:40 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

> everything is checked in now.  please feel free to read the new docs,
> try the new guile-snarf, and complain loudly so weirdnesses can be fixed
> (when the going gets weird, the weird turn pro)...

Please read the "Stable branch will freeze" article in guile-devel.
Here is the relevant excerpt:

    The guile-snarf changes need to be brought back to a state where
    guile-snarf is completely compatible with the last guile-snarf
    that has been installed.  It can add features, but must not remove
    any.  Also it should define SCM_MAGIC_SNARFER in addition to
    SCM_MAGIC_SNARF_INIT when pre-processing the C file.  The fact
    that SCM_MAGIC_SNARFER is defined should be documented, while
    SCM_MAGIC_SNARF_INIT should not be documented.  Thien-Thi, I can
    make these changes if you want me to.  Please feel free to hack on
    guile-snarf in the HEAD branch.  I really think your work on the
    snarfer is important, please don't get me wrong.


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 23:35                 ` Marius Vollmer
@ 2002-03-15  4:26                   ` Thien-Thi Nguyen
  2002-03-15 15:56                     ` Thien-Thi Nguyen
  0 siblings, 1 reply; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-15  4:26 UTC (permalink / raw)
  Cc: guile-devel

   From: Marius Vollmer <mvo@zagadka.ping.de>
   Date: 15 Mar 2002 00:35:23 +0100

   > why isn't SCM_VCELL in HEAD branch snarf.h?

   It is deprecated in the 1.6 branch and all things that are deprecated
   in 1.6 are already removed from HEAD.  It is deprecated in the 1.6
   branch because the whole concept of vcells has been deprecated.  This
   has been done to clean up a confusing between glocs and structs and to
   make the memoized code be a proper Scheme data structure.  Also, some
   bindings where done with variables, and some not.  Now all bindings
   are done with variables which makes for a better integration of the
   module system into the rest of Guile.

   > how do you propose to handle the situation where a user has
   > SCM_VCELL but would like to use guile-1.8?

   He should remove all uses of vcells and switch to variables.

thanks for the explanation (which is also touched upon in NEWS -- i
should have looked there first).  looks like "1.4 compatibility" in
snarfing has no value in the long run, so "guile-snarf --compat=1.4"
support is misguided and can be removed.  i'll replace it with detection
of the deprecated macros, which for 1.6 would result in a warning, and
1.8 would result in an error.

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-15  4:26                   ` Thien-Thi Nguyen
@ 2002-03-15 15:56                     ` Thien-Thi Nguyen
  2002-03-15 21:19                       ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Thien-Thi Nguyen @ 2002-03-15 15:56 UTC (permalink / raw)


   From: Thien-Thi Nguyen <ttn@giblet.glug.org>
   Date: Thu, 14 Mar 2002 20:26:23 -0800

   i'll replace it with detection of the deprecated macros, which for
   1.6 would result in a warning, and 1.8 would result in an error.

here's guile-snarf commentary now (the bits that have changed):

# Usage: guile-snarf [-d | -D] [-o OUTFILE] INFILE [CPP-OPTIONS ...]
# [...]
# Optional arg "-d" means grep INFILE for deprecated macros and
# issue a warning if any are found.  Alternatively, "-D" means
# do the same thing but signal error and exit w/ non-zero status.

deprecrated macros listed in guile-snarf, tools.texi and NEWS:
 SCM_CONST_LONG
 SCM_VCELL
 SCM_VCELL_INIT
 SCM_GLOBAL_VCELL
 SCM_GLOBAL_VCELL_INIT

thi

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-14 22:43         ` Thien-Thi Nguyen
  2002-03-14 23:31           ` Rob Browning
@ 2002-03-15 21:12           ` Marius Vollmer
  2002-03-15 21:33             ` Rob Browning
  1 sibling, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-15 21:12 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    From: Marius Vollmer <mvo@zagadka.ping.de>
>    Date: 14 Mar 2002 20:09:36 +0100
> 
>    > this is not guaranteed to work; when invoked w/ "foo > out.x", the shell
>    > does indeed create out.x first, satisfying most CPPs' requirements for
>    > out.x existing to be #included.
> 
>    Sorry, I was confused.  I still am, for that matter.  How can it
>    happen that during
> 
>        guile-snarf foo.c >foo.x
> 
>    the file foo.x does not exist?  It should get created by the shell
>    before guile-snarf is executed.

Ouch.  Boy, I was really really dense here.  Of course the actual
command that is run is not "guile-snarf foo.c >foo.x" but

    guile-snarf foo.c >foo.tmp.x && mv foo.tmp.x foo.x

No fancy buffer issues or race conditions needed to explain the
lossage...  People have been using the #ifdef SCM_MAGIC_SNARFER trick
to work around this, and we need to make that fix work again.

I now also understand why writing to stdout is so bad and why the "-o"
option is so much better.  (it's taken a while, sorry Thien-Thi.)

>    Yes, but it is still easier not to change existing code that makes use
>    of the old behavior of guile-snarf.
> 
> here, the code that needs changing is primarily in makefiles, which are
> not as big a pain to update as C source, there being fewer makefiles
> than source files typically.

But it's still easier not to change the snarfing rules.  Arguing for
an evil by citing a larger, unrelated evil is not really
convincing. ;-)

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-15 15:56                     ` Thien-Thi Nguyen
@ 2002-03-15 21:19                       ` Marius Vollmer
  0 siblings, 0 replies; 32+ messages in thread
From: Marius Vollmer @ 2002-03-15 21:19 UTC (permalink / raw)
  Cc: guile-devel

Thien-Thi Nguyen <ttn@giblet.glug.org> writes:

>    From: Thien-Thi Nguyen <ttn@giblet.glug.org>
>    Date: Thu, 14 Mar 2002 20:26:23 -0800
> 
>    i'll replace it with detection of the deprecated macros, which for
>    1.6 would result in a warning, and 1.8 would result in an error.

That's a very good thing to do, in my opinion.

I think it would be even better when the list of deprecated snarfer
macros are taken from snarf.h itself.  Like, we could change the
SCM_VCELL definition to

    #define SCM_VCELL(c_name, scheme_name) \
    SCM_SNARF_HERE(static SCM c_name) \
    SCM_SNARF_INIT_DEPRECATED(c_name = \
      scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)

with

    # define SCM_SNARF_INIT_DEPRECATED(X) ^^deprecated X

guile-snarf could then detect the ^^deprecated marker and do its
thing.

Or, simpler, we could explicitely include calls to
scm_c_issue_deprecation_warning into the INIT code for deprecated snaf
macros.  Like

    #define SCM_VCELL(c_name, scheme_name) \
    SCM_SNARF_HERE(static SCM c_name) \
    SCM_SNARF_INIT(scm_c_issue_deprecation_warning \
     ("SCM_VCELL is deprecated.  Use SCM_VARIABLE instead."); \
     c_name = scm_permanent_object (scm_sysintern (scheme_name, SCM_BOOL_F));)


I even wonder if it would be good to enable the "-d" behavior by
default?

What do you think?

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-15 21:12           ` Marius Vollmer
@ 2002-03-15 21:33             ` Rob Browning
  2002-03-15 21:58               ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-15 21:33 UTC (permalink / raw)
  Cc: ttn, guile-devel


OK, so where does this leave us?  Is there still more work to be done
on snarfing, and if so, any ideas about when it might be ready?

Thanks

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-15 21:33             ` Rob Browning
@ 2002-03-15 21:58               ` Marius Vollmer
  2002-03-17 17:07                 ` Rob Browning
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-15 21:58 UTC (permalink / raw)
  Cc: ttn, guile-devel

Rob Browning <rlb@defaultvalue.org> writes:

> OK, so where does this leave us?  Is there still more work to be done
> on snarfing, and if so, any ideas about when it might be ready?

I will change the snarfer in the 1.6 branch to be compatible with the
1.4 one.  By compatible, I mean the guile-snarf program will have a
compatible usage, not that all the snarfer macros of 1.4 (like
SCM_VCELL) will be available.

That should be done by tomorrow.

When there crop up problems with the new snarfer (like non-portable
shell constructs), I will revert it to the simpler 1.4 snarfer and
attempt to fix the bugs in 1.7 in parallel.

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-15 21:58               ` Marius Vollmer
@ 2002-03-17 17:07                 ` Rob Browning
  2002-03-18  0:07                   ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-17 17:07 UTC (permalink / raw)
  Cc: ttn, guile-devel

Marius Vollmer <mvo@zagadka.ping.de> writes:

> I will change the snarfer in the 1.6 branch to be compatible with the
> 1.4 one.  By compatible, I mean the guile-snarf program will have a
> compatible usage, not that all the snarfer macros of 1.4 (like
> SCM_VCELL) will be available.
>
> That should be done by tomorrow.

OK, then I'll plan to try to release the next 1.5 version (including
the gensym threads fix) mon or tues.

Thanks

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-17 17:07                 ` Rob Browning
@ 2002-03-18  0:07                   ` Marius Vollmer
  2002-03-18  2:52                     ` Rob Browning
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-18  0:07 UTC (permalink / raw)
  Cc: ttn, guile-devel

Rob Browning <rlb@defaultvalue.org> writes:

> Marius Vollmer <mvo@zagadka.ping.de> writes:
> 
> > I will change the snarfer in the 1.6 branch to be compatible with the
> > 1.4 one.  By compatible, I mean the guile-snarf program will have a
> > compatible usage, not that all the snarfer macros of 1.4 (like
> > SCM_VCELL) will be available.
> >
> > That should be done by tomorrow.
> 
> OK, then I'll plan to try to release the next 1.5 version (including
> the gensym threads fix) mon or tues.

Oops, sorry, I didn't find time this weekend.  I'll be busy Monday and
Tuesday as well...

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-18  0:07                   ` Marius Vollmer
@ 2002-03-18  2:52                     ` Rob Browning
  2002-03-20 21:11                       ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-18  2:52 UTC (permalink / raw)
  Cc: ttn, guile-devel

Marius Vollmer <mvo@zagadka.ping.de> writes:

> Oops, sorry, I didn't find time this weekend.  I'll be busy Monday and
> Tuesday as well...

No problem.  Thanks for letting me know, though -- just holler when
you get a chance to finish.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-18  2:52                     ` Rob Browning
@ 2002-03-20 21:11                       ` Marius Vollmer
  2002-03-21 16:23                         ` Rob Browning
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-03-20 21:11 UTC (permalink / raw)
  Cc: ttn, guile-devel

Rob Browning <rlb@defaultvalue.org> writes:

> Marius Vollmer <mvo@zagadka.ping.de> writes:
> 
> > Oops, sorry, I didn't find time this weekend.  I'll be busy Monday and
> > Tuesday as well...
> 
> No problem.  Thanks for letting me know, though -- just holler when
> you get a chance to finish.

Ok, I've committed something.  Please check.

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-20 21:11                       ` Marius Vollmer
@ 2002-03-21 16:23                         ` Rob Browning
  2002-04-24 20:07                           ` Marius Vollmer
  0 siblings, 1 reply; 32+ messages in thread
From: Rob Browning @ 2002-03-21 16:23 UTC (permalink / raw)
  Cc: ttn, guile-devel

Marius Vollmer <mvo@zagadka.ping.de> writes:

>> No problem.  Thanks for letting me know, though -- just holler when
>> you get a chance to finish.
>
> Ok, I've committed something.  Please check.

I'm trying to check against some of the other projects that use
guile-snarf, and I wanted to make sure I knew how things are expected
to work now (it's OK if the other projects need to change their
source, I just want to make sure I knew what those changes are and
that they're in NEWS and/or info).

Here's what gnome-guile 0.21pre4's failing on with current 1.5 cvs --
if I run the make immediately again, it seems to proceed normally, so
I'm presuming there's still some "file existence race" or similar:

  make[2]: Entering directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4/guile-gtk'
  guile-snarf -DHAVE_CONFIG_H -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include  -I/home/rlb/dev/guile/check/src/gnome-guile/guile-gtk -I/home/rlb/dev/guile/check/tmp/include -I/home/rlb/dev/guile/check/tmp/include -I/home/rlb/dev/guile/check/tmp/include  -g -O2 gtk-support.c >gtk-support.x
  make[2]: *** [gtk-support.x] Error 1
  make[2]: Leaving directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4/guile-gtk'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4'
  make: *** [all] Error 2

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-03-21 16:23                         ` Rob Browning
@ 2002-04-24 20:07                           ` Marius Vollmer
  2002-04-24 20:42                             ` Rob Browning
  0 siblings, 1 reply; 32+ messages in thread
From: Marius Vollmer @ 2002-04-24 20:07 UTC (permalink / raw)
  Cc: ttn, guile-devel

Sorry for the delay.  Is this still an issue?

Rob Browning <rlb@defaultvalue.org> writes:

> Here's what gnome-guile 0.21pre4's failing on with current 1.5 cvs
> -- if I run the make immediately again, it seems to proceed
> normally, so I'm presuming there's still some "file existence race"
> or similar:
> 
>   make[2]: Entering directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4/guile-gtk'
>   guile-snarf -DHAVE_CONFIG_H -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include  -I/home/rlb/dev/guile/check/src/gnome-guile/guile-gtk -I/home/rlb/dev/guile/check/tmp/include -I/home/rlb/dev/guile/check/tmp/include -I/home/rlb/dev/guile/check/tmp/include  -g -O2 gtk-support.c >gtk-support.x
>   make[2]: *** [gtk-support.x] Error 1
>   make[2]: Leaving directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4/guile-gtk'
>   make[1]: *** [all-recursive] Error 1
>   make[1]: Leaving directory `/home/rlb/dev/guile/check/src/gnome-guile-0.21pre4'
>   make: *** [all] Error 2

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
  2002-04-24 20:07                           ` Marius Vollmer
@ 2002-04-24 20:42                             ` Rob Browning
  0 siblings, 0 replies; 32+ messages in thread
From: Rob Browning @ 2002-04-24 20:42 UTC (permalink / raw)
  Cc: ttn, guile-devel

Marius Vollmer <mvo@zagadka.ping.de> writes:

> Sorry for the delay.  Is this still an issue?

Nope, my current combination of guile stable and my gnome-guile tree
work fine together, but I may need to send a gnome-guile patch
upstream -- haven't checked yet where things ended up on that front.

Thanks

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2002-04-24 20:42 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-13  7:51 snarfer guard macro name decision: SCM_MAGIC_SNARFER Thien-Thi Nguyen
2002-03-13  9:26 ` Thien-Thi Nguyen
2002-03-13 19:15   ` Marius Vollmer
2002-03-13 21:28     ` Thien-Thi Nguyen
2002-03-13 22:00       ` Rob Browning
2002-03-13 22:58         ` Thien-Thi Nguyen
2002-03-14  0:12           ` Thien-Thi Nguyen
2002-03-14  5:44             ` Rob Browning
2002-03-14 18:48             ` Marius Vollmer
2002-03-14 20:44               ` Thien-Thi Nguyen
2002-03-14 23:35                 ` Marius Vollmer
2002-03-15  4:26                   ` Thien-Thi Nguyen
2002-03-15 15:56                     ` Thien-Thi Nguyen
2002-03-15 21:19                       ` Marius Vollmer
2002-03-14  5:56           ` Thien-Thi Nguyen
2002-03-14  6:58             ` Rob Browning
2002-03-14  7:17               ` Rob Browning
2002-03-14  9:32                 ` Thien-Thi Nguyen
2002-03-14 23:40             ` Marius Vollmer
2002-03-14 19:09       ` Marius Vollmer
2002-03-14 22:43         ` Thien-Thi Nguyen
2002-03-14 23:31           ` Rob Browning
2002-03-15 21:12           ` Marius Vollmer
2002-03-15 21:33             ` Rob Browning
2002-03-15 21:58               ` Marius Vollmer
2002-03-17 17:07                 ` Rob Browning
2002-03-18  0:07                   ` Marius Vollmer
2002-03-18  2:52                     ` Rob Browning
2002-03-20 21:11                       ` Marius Vollmer
2002-03-21 16:23                         ` Rob Browning
2002-04-24 20:07                           ` Marius Vollmer
2002-04-24 20:42                             ` Rob Browning

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).