D``?!_\T'`<;YQ?_$
M^<7_QOD!PZ31!P##!P`'`,,'``<`PP<`!P`'`,,'`,0'P@#"!P`'`,,'``<`
MQ0<`PP<`!P##!P#)!P#"!P#"!P`'`,('``<`P@<`P@<`PP<`!\(`P@<`_P?_
M!_\'_0??!\\'R`?$!Z0`!\'_S0D``?!_\\'`=;Y`<2DTP?#`,,'
MPP##!\(`!P`'`,('Q`#$!P##!P#"!\,`PP<`Q`?$`,,'PP#+!P##!P#"!P#"
M!P#"!P#"!P#"!\,`P@<`PP<`Q@<`_P?_!_\'^@?=!\X'QP?$!Z0`!\'_SPD
MPP'(^<,!Q:3_!_\'_P?_!_\'^@?=!\X'QP?$!Z0`!\'_U0?"I,@!QJ3_!_\'
M_P?_!_\'^P?=!\\'QP?$!Z0`!\'_U@?.I/\'_P?_!_\'_P?[!]X'SP?'!\0'
MI``'P?_9!\BD_P?_!_\'_P?_!_T'W@?/!\@'Q`>D``?!__\'_P?_!_\'_P?_
M!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'
M_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'
MP@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_
M!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'
M_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'
MP@>D``?!__X'Q`#"!P`'`,<'`-@'Q`##!P##!P#E!P#D``?!__X'Q`#"!P`'`,('
MPP#"!P##!P#%!\,`P@<`PP<`Q0?$`,,'`,0'`,4'`,('PP#&!P#"!\,`P@<`
MP@<`P@<`P@<`!P`'`,,'`,('Q`#"!P#"!\,`Q@<`!P##!P#"!\,`Q@?$``?$
M`,('Q`#"!P`'`,('PP##!\0`P@<`!P#"!\,`P@<`PP<`_P?_!_$'V`?,!\8'
MPP>D``?!__\'_P?_!\T'`,4'`/\'_P?_!^0'T@?)!\0'!Z0`!\'__P?_!_\'
MS0<`Q0<`_P?_!_\'Y`?2!\D'Q`<'I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&
M!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?_^!\0`P@<`!P#'
M!P#8!\0`Q`<`Q`<`Q`<`PP?$`,('Q0#"!P#8!P#'!P#7!P#@!P`'`-`'`/\'
M_P?P!]@'S`?&!\('I``'P?_]!P#$!P`'`,D'`-<'`,0'`,,'`,0'P@##!P#"
M!P#$!P`'`,8'`,@'`,\'`,<'`-0'`,('`.`'`,\'`/\'_P?Q!]D'S`?&!\,'
MI``'P?_]!P#&!P#)!P#7!P#'!P`'`,,'P@##!P#"!P#&!P#&!P#(!P#/!P#'
M!P#4!P#"!P#@!P#/!P#_!_\'\0?9!\P'Q@?#!Z0`!\'__0<`Q@<`!P#"!\,`
MP@<`P@<`Q@?#`,('``?"`,4'`,<'``<`PP<`!P#"!P#"!P#&!P#&!P#(!\(`
MP@?#`,8'Q`#"!\,`P@?$`,('`,,'`,('Q`#$!\(`!P`'P@##!\,`Q@?#`,('
MQ`#"!\0`P@<`!P#"!\,`PP?#`,('P@`'`,('PP#"!P`'P@#_!_\'Z@?5!\L'
MQ0?"!Z0`!\'__0<`Q@<`!P`'`,,'``<`!P#&!P##!P`'P@#"!P#$!P#&!P##
M!P#"!P`'`,('`,('`,8'Q`##!P#(!P#"!P##!P#$!P##!P`'`,,'``<`PP<`
M!P##!P`'`,,'`,0'`,('P@#"!P`'`,,'`,@'``<`PP<`!P##!P`'``<`!P##
M!P#%!P`'`,('``<`PP<`!\(`P@<`_P?_!^H'U0?*!\4'P@>D``?!__T'`,8'
M``<`!P#%!\(`QP<`PP<`!P##!P#$!P#&!P##!P#"!P#"!P`'`,('`,8'`,8'
M`,@'`,('`,,'`,0'`,,'``?%``<`PP<`!P##!P`'`,,'`,0'`,('`,,'``?%
M`,4'Q``'`,,'``<`PP<`!P`'``<`Q@?$``<`P@<`!P##!P`'`,,'`/\'_P?J
M!]4'R@?%!\('I``'P?_]!P#&!P`'``<`Q0<`!P#&!P##!P`'`,,'`,0'`,8'
MQ0#"!P##!\(`P@<`Q@<`Q@<`R`<`P@<`PP<`Q`<`PP<`!P#%!P##!P`'`,,'
M``<`PP<`Q`<`P@<`PP<`!P#(!P##!P`'`,,'``<`PP<`!P`'``<`Q0<`PP<`
M!P#"!P`'`,,'``<`PP<`_P?_!^H'U0?*!\4'P@>D``?!__T'`,0'``<`!P`'
M`,,'``<`P@<`Q0<`PP<`!P##!P#$!P#$!\(`Q0<`!P##!\(`P@<`Q`<`!P#&
M!P#(!P#"!P##!P#$!P##!P`'`,,'``<`PP<`!P#"!\(`!P##!P#$!P#"!P##
M!P`'`,,'`,0'`,,'``<`PP<`!P##!P`'``<`!P##!P`'`,,'``<`P@<`!P##
M!P`'`,,'`/\'_P?J!]4'R@?%!\('I``'P?_^!\0`P@<`!P#"!\,`P@<`PP<`
MQ0?#`,('`,,'`,4'Q``'`,4'``<`Q`<`PP?$`,('Q0#"!\4`Q0<`P@?#`,8'
MQ`#"!\,`P@?$`,,'P@`'`,('Q`#%!P`'`,,'`,('PP#&!\0`!\0`P@?$`,('
M``<`P@?#`,,'Q`#"!P`'`,('PP#"!P##!P#_!_\'Z@?5!\H'Q0?"!Z0`!\'_
M_P?_!_T'`-P'`,4'`/\'_P?\!]X'SP?(!\0'I``'P?__!_\'^0?$`-T'`,4'
M`/\'_P?\!]X'SP?(!\0'I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'
MP?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'
MRP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_
M!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'
MP?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'
MRP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_
M!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'
MP?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'
MRP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_
M!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'
MP?__!_\'_P?_!_\'_P?N!]<'RP?&!\('I``'P?__!_\'_P?J`,8'Z?\`_P?_
M!^`'T`?(!\0'!Z0`!\'__P?_!_\'`.?_P@#&!\'_YP>D`/\'_P?@!]`'R`?$
M!P>D``?!__\'_P?_!P#!_^4'I,(`Q@?!_^<'I`#_!_\'X`?0!\@'Q`<'I``'
MP?__!_\'_P<`P?_E!Z3"`,8'P?_G!Z0`_P?_!^`'T`?(!\0'!Z0`!\'__P?_
M!_\'`,'_PP<`!P`'``<`!P`'``<`!P`'``<`!P`'``<`!P`'``<`!P`'I,(`
MQ@?!_^<'I`#_!_\'X`?0!\@'Q`<'I``'P?__!_\'_P<`P?_"!P#B!Z3"`,8'
MP?_G!Z0`_P?_!^`'T`?(!\0'!Z0`!\'__P?_!_\'`,'_S0?$`,,'`,,'`,H'
M``>DP@#&!\'_Q0?$`-H'`,,'I`#_!_\'X`?0!\@'Q`<'I``'P?__!_\'_P<`
MP?_"!P#)!P#$!P#"!P#"!P#-!Z3"`,8'P?_$!P#$!P#9!P##!Z0`_P?_!^`'
MT`?(!\0'!Z0`!\'__P?_!_\'`,'_S`<`Q`<`P@<`!P#,!P`'I,(`Q@?!_\0'
M`-X'`,,'I`#_!_\'X`?0!\@'Q`<'I``'P?__!_\'_P<`P?_"!P#)!P#$!P#"
M!\(`SP>DP@#&!\'_Q`<`QP?#`,('``?"`,,'PP##!\,`P@<`PP>D`/\'_P?@
M!]`'R`?$!P>D``?!__\'_P?_!P#!_\P'`,0'`,('P@#-!P`'I,(`Q@?!_\0'
M`,H'``?"`,('``<`PP<`!P##!P`'`,,'I`#_!_\'X`?0!\@'Q`<'I``'P?__
M!_\'_P<`P?_"!P#)!P#$!P#"!P`'`,X'I,(`Q@?!_\0'`,<'Q``'`,,'``<`
MQ0?%``<`PP>D`/\'_P?@!]`'R`?$!P>D``?!__\'_P?_!P#!_\P'`,0'`,('
M`,('`,L'``>DP@#&!\'_Q`<`Q@<`PP<`!P##!P`'`,4'`,4'`,,'I`#_!_\'
MX`?0!\@'Q`<'I``'P?__!_\'_P<`P?_"!P#)!P#$!P#"!P##!P#,!Z3"`,8'
MP?_$!P#$!P`'`,,'``<`PP<`!P##!P`'`,,'``<`PP>D`/\'_P?@!]`'R`?$
M!P>D``?!__\'_P?_!P#!_\T'Q`##!P#$!P#)!P`'I,(`Q@?!_\4'Q`##!\0`
M!P##!P#"!\,`PP?#`,('`,,'I`#_!_\'X`?0!\@'Q`<'I``'P?__!_\'_P<`
MP?_"!P#B!Z3"`,8'P?_G!Z0`_P?_!^`'T`?(!\0'!Z0`!\'__P?_!_\'`,'_
MXP<`!Z3"`,8'P?_G!Z0`_P?_!^`'T`?(!\0'!Z0`!\'__P?_!_\'`,'_P@<`
MX@>DP@#&!\'_YP>D`/\'_P?@!]`'R`?$!P>D``?!__\'_P?_!P#!_\,'``<`
M!P`'``<`!P`'``<`!P`'``<`!P`'``<`!P`'``<`!Z3"`,8'P?_G!Z0`_P?_
M!^`'T`?(!\0'!Z0`!\'__P?_!_\'`,'_Y0>DP@#&!\'_YP>D`/\'_P?@!]`'
MR`?$!P>D``?!__\'_P?_!P#!_^:DP@#&!\'_YP>D`/\'_P?@!]`'R`?$!P>D
M``?!__\'_P?_!^H`Q@?!_^BD`/\'_P?@!]`'R`?$!P>D``?!__\'_P?_!^H`
MQ@?J`/\'_P?@!]`'R`?$!P>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D
M``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'
MUP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_
M!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D
M``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'
MUP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_
M!_\'_P?_!^X'UP?+!\8'P@>D``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D
M``?!__\'_P?_!_\'_P?_!^X'UP?+!\8'P@>D``?_I/^D_Z3_I/^D_Z3NI->D
MS*3&I,.D`/\`_P#_`/\`_P#_`.\`UP#,`,8`PP``#````(````"``("`````
M@(``@`"`@,#`P,#D`,($P@>D``?!_\('PP3#=\,$
MPG?#!,)WQ03&__\$_P3_!/\$_P3_!/\$_P3_!-<$P?_-!Z0`P?_"!\D`P@>D
M`,($P?_+!\('I`#"!,('I``'P?_"!\,$PG?"!,9WP@3#=\,$PO__!/\$_P3_
M!/\$_P3_!/\$_P3;!,'_S0>D`,'_P@?)`,('I`#"!,'_PP?"`,0'P@#"!Z0`
MP@3"!Z0`!\'_P@?"!,)WP@3#=\($PG?"!,-WPP3"__\$_P3_!/\$_P3_!/\$
M_P3_!-L$P?_-!Z0`P?_"!P#'!P#"!Z0`P@3!_\0'P@#"!\(`PP>D`,($P@>D
M``?!_\('P@3"=\($PG?(!'?$!,+_Q@3#_P3#_\($Q/_"!,/__P3_!/\$_P3_
M!/\$_P3_!/X$Q`3!_\T'I`#!_\('`,<'`,('I`#"!,'_Q0?$`,0'I`#"!,('
MI``'P?_"!\($PG<$PG?.!,7_PP3"_\($PO_"!,+_P@3"_P3"__\$_P3_!/\$
M_P3_!/\$_P3^!,4$P?_-!Z0`P?_"!P#'!P#"!Z0`P@3!_\8'P@#%!Z0`P@3"
M!Z0`!\'_P@?"!,)W!,)WS@3"_\8$PO_"!,+_P@3"_\($PO\$PO__!/\$_P3_
M!/\$_P3_!/\$_@3%!,'_S0>D`,'_P@<`QP<`P@>D`,($P?_%!\0`Q`>D`,($
MP@>D``?!_\('P@3"=\($PG?-!,+_Q@3"_\($PO_"!,+_P@3"_P3"__\$_P3_
M!/\$_P3_!/\$_P3^!,4$P?_-!Z0`P?_"!P#'!P#"!Z0`P@3!_\0'P@#"!\(`
MPP>D`,($P@>D``?!_\('P@3"=\($PW?"!,)WR`3"_\8$PO_"!,+_P@3"_\($
MPO\$PO__!/\$_P3_!/\$_P3_!/\$_@3%!,'_PP?&`,0'I`#!_\('`,<'`,('
MI`#"!,'_PP?"`,0'P@#"!Z0`P@3"!Z0`!\'_P@?#!,)WP@3&=\($PG?$!,;_
MP@3"_\($PO_#!,3_P@3"__\$_P3_!/\$_P3_!/\$_P3^!,4$P?_#!\8`Q`>D
M`,'_P@?)`,('I`#"!,'_RP?"!Z0`P@3"!Z0`!\'_P@?#!,-WPP3"=\,$PW?_
M!/\$_P3_!/\$_P3_!/\$_P3A!,'_S0>D`,'_S0>D`,($P?_+!\('I`#"!,('
MI``'P?_"!\0$PW?%!,1W_P3_!/\$_P3_!/\$_P3_!/\$X@3!_\ZD`,'_SJ0`
MP@3!_\NDPZ0`P@3"!Z0`!\'_P@?%!,IW_P3_!/\$_P3_!/\$_P3_!/\$XP3=
M`,,`P@3,`,0`P@3"!Z0`!\'_P@?'!,9W_P3_!/\$_P3_!/\$_P3_!/\$[P38
M!,P$Q@3"!Z0`!\'_P@?_!/\$_P3_!/\$_P3_!/\$_P3V!-L$S03'!`3"!Z0`
M!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_
M!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;
M!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'_
M_P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'
M_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'
MQP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_
M!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_
M!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#
M!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'
M_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\'
M]P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?A!\4`W0<`Q0<`!P#%!P#W!P#.!P#*
M!P#B!P`'`/\'_P?Q!]@'S`?&!\,'I``'P?__!_\'_P?_!^$'`.$'`,<'`,4'
M`/D'`,P'`,H'`.('``<`_P?_!_$'V`?,!\8'PP>D``?!__\'_P?_!_\'X0<`
MX0<`QP<`Q0<`^0<`S`<`R@<`X@<`!P#_!_\'\0?8!\P'Q@?#!Z0`!\'__P?_
M!_\'_P?A!P#&!\(`!\(`P@?#`,('P@`'`,8'PP#"!P`'P@#"!P`'`,('Q`#$
M!\0`P@?"`,('PP##!\,`PP?#`,,'P@##!\(`Q@?#`,('`,('``<`!\(`P@?#
M`,,'Q`#%!\,`P@?$`,('``?"`,,'PP#"!\(`!\,`!\(`PP?#`,('``<`!P#"
M!P#_!_\'[@?7!\P'Q@?"!Z0`!\'__P?_!_\'_P?A!\0`PP<`P@<`P@<`PP<`
M!P#(!P##!P`'P@#"!P`'``<`!P##!P#$!P##!P`'`,('`,,'``<`PP<`!P##
M!P`'`,('``<`P@<`Q`<`PP<`!P#"!P`'``<`P@<`PP<`!P##!P#(!P`'`,,'
M``?"`,('``<`PP<`!P#"!P#"!P#"!P#%!P`'``<`!P#"!P#_!_\'[@?7!\P'
MQ@?"!Z0`!\'__P?_!_\'_P?A!P#&!P#"!P#"!P##!P`'`,@'`,4'`,,'``<`
M!P`'`,,'`,0'`,,'``<`P@<`PP<`!P#%!\4`P@<`Q`<`Q@?%`,('P@#"!P`'
M`,('Q0`'`,,'`,4'Q``'`,,'``<`PP<`!P##!P`'`,('`,('`,('`,('Q``'
M``<`!P#"!P#_!_\'[@?7!\P'Q@?"!Z0`!\'__P?_!_\'_P?A!P#&!P#"!P#"
M!P##!P`'`,@'`,4'`,,'``<`!P`'`,,'`,0'`,,'``<`P@<`PP<`!P#%!P#'
M!P#$!P#%!P#&!\(`P@<`!P#"!P#%!P##!P#$!P##!P`'`,,'``<`PP<`!P##
M!P`'`,('`,('`,('``<`PP<`!P`'``<`P@<`_P?_!^X'UP?,!\8'P@>D``?!
M__\'_P?_!_\'X0<`Q@<`P@<`P@<`PP<`!P#(!P##!P`'`,,'``<`!P`'`,,'
M`,0'`,,'``<`P@<`PP<`!P##!P`'`,,'``<`P@<`!P#"!P#$!P##!P`'`,('
M``<`!P#"!P##!P`'`,,'`,0'`,,'``<`PP<`!P##!P`'`,,'``<`P@<`P@<`
MP@<`!P##!P`'``<`P@?"`/\'_P?O!]<'S`?&!\('I``'P?__!_\'_P?_!^$'
MQ0#"!P#"!P##!\,`P@<`P@<`Q@?#`,('`,,'``<`!P#"!\0`Q`?$`,('`,,'
MPP##!\,`PP?#`,,'P@##!\(`Q@?#`,('`,('``<`P@<`P@?#`,,'Q`#%!\0`
M!\0`P@<`PP<`P@?#`,('`,('`,('`,('`,('Q``'``<`P@<`_P?_!^\'V`?,
M!\8'P@>D``?!__\'_P?_!_\'_P?7!P#_!_4'`/\'_P?O!]@'S`?&!\('I``'
MP?__!_\'_P?_!_\'UP<`_P?S!\(`_P?_!_`'V`?,!\8'P@>D``?!__\'_P?_
M!_\'_P?_!_\'_P?_!_<'VP?.!\<'PP>D``?!__\'_P?_!_\'_P?_!_\'_P?_
M!_<'VP?.!\<'PP>D``?!__\'T`?$`,T'`-\'`.@'`-$'`,\'`,4'`,<'`-H'
M`,('PP#2!P#-!P#5!P#6!\(`Q0<`!P#0!\0`SP<`!P#&!P#K!P#%!P`'``<`
MR@?#`,,'`,4'P@#%!P`'`-`'Q`#/!P`'`,8'`.L'`,4'``<`!P#*!\,`PP<`
MPP?$`,L'`,P'PP#=!\\'QP?$!Z0`!\'_WP?,^>0'`,,'`.L'`.8'`-,'`-`'
M`,4'`,<'`-H'``<`PP<`WP<`R`<`RP<`UP?"`,4'`-$'`,0'`,X'`,,'`,0'
M`.('`,@'`,<'`,,'`,<'`,,'`,('`,4'P@#%!P#1!P#$!P#.!P##!P#$!P#B
M!P#(!P#'!P##!P#'!P##!P#"!P#"!P#$!P#*!P#+!P##!P#=!\X'QP?$!Z0`
M!\'_W@?!^D``?!_]T'P?G!_\SYP?_!^>('`,0'`,('`,,'``?"``<`
M!P`'P@##!\0`Q`<`P@<`!\(`P@?#`,('P@#%!\0`P@?#`,('``?"`,,'PP#"
M!\(`P@?#`,('P@`'`,('PP#"!P`'P@#%!\(`P@?#`,('P@`'`,8'``<`PP<`
MQ`<`PP?#`,('P@`'PP`'P@##!\(`Q`<`P@<`QP?#`,('P@`'`,,'``<`P@?#
M`,,'PP#"!P#"!P`'P@#"!\(`P@?#`,('P@`'P@#"!\,`PP?#`,,'PP#$!P#"
M!P##!P#"!P#"!\,`P@<`P@<`P@<`!P#&!\(`P@?#`,,'Q``'``?"`,('``<`
MQ`?#`,,'PP##!\,`P@<`PP<`!P`'P@#"!\(`P@?#`,('Q`#"!P`'``<`!\(`
M!P#"!P`'`,8'`,0'`,('`,,'`,('`,('PP#"!P#"!P#"!P`'`,8'P@#"!\,`
MPP?$``<`!\(`P@<`!P#$!\,`PP?#`,,'PP#"!P##!P`'``?"`,('P@#"!\,`
MP@?$`,('``<`!P`'P@`'`,('``<`Q@<`P@<`QP?#`,('P@`'Q`##!\,`P@<`
MQP?#`,('P@`'`,,'`,('PP#"!\(`Q0?#`,('Q`#"!\0`Q@?#!Z0`!\'_W`?!
M^<'_SOG!_\'YX0<`Q`<`P@<`PP<`!P#"!P`'P@#"!P`'`,,'`,0'`,('``<`
MP@<`PP<`!P#%!P##!P`'`,,'``?"`,('``<`PP<`!P#&!P`'`,('``<`PP<`
M!\(`P@<`Q`<`P@<`PP<`!P#*!P#)!P#"!P##!P`'`,('`,('`,('``<`P@<`
MPP<`PP?#`,,'`,,'``<`P@<`PP<`!P`'`,,'``<`PP<`!P#"!\(`P@<`!P#"
M!P##!P`'`,('`,8'``<`PP<`!P##!P##!P#"!P##!P#"!P`'`,,'``<`P@<`
MP@<`!P#&!P#"!P##!P`'`,,'``<`!P#"!P##!P#"!P##!P`'`,,'``<`PP<`
M!P##!P`'P@#"!P`'`,8'``<`PP<`!P`'``<`!P#"!P#"!P#"!\,`PP<`Q`<`
MP@<`PP<`P@<`!P##!P`'`,('`,('``<`Q@<`P@<`PP<`!P##!P`'``<`P@<`
MPP<`P@<`PP<`!P##!P`'`,,'``<`PP<`!\(`P@<`!P#&!P`'`,,'``<`!P`'
M``<`P@<`P@<`P@?#`,,'`,('`,8'`,,'``<`P@<`PP<`Q0<`P@?#`,,'`,,'
M``<`P@<`PP<`!P##!P`'`,4'`,,'``<`PP<`!P##!P#&!\('I``'P?_;!\'Y
MP?_0^<'_P?G@!P#$!P#"!P##!P`'`,('``<`PP<`!P##!P#%!\(`P@<`P@?%
M``<`P@?"``<`PP<`!\4`!P##!P`'Q0`'`,,'Q``'`,('``<`PP<`!P##!P#$
M!P#"!P##!P`'`,H'`,@'`,,'`,4'`,('`,('`,('`,('`,0'`,<'`,('Q0`'
M`,,'``<`P@<`!P#%!\4`!P#"!P##!P`'`,('Q0`'`,('`,,'Q``'`,4'Q0#"
M!P#$!P`'`,,'``?%``<`!P`'``<`!P#&!P#"!\4`!P##!P`'``<`P@<`PP<`
MP@<`Q0<`Q0<`PP<`!P##!P`'`,,'``<`PP?$``<`PP<`!P`'``<`!P#"!P#"
M!P#%!P#"!P##!P#$!P`'`,,'``?%``<`!P`'``<`!P#&!P#"!\4`!P##!P`'
M``<`P@<`PP<`P@<`Q0<`Q0<`PP<`!P##!P`'`,,'``<`PP?$``<`PP<`!P`'
M``<`!P#"!P#"!P#%!P#"!P#"!P#&!P##!P`'`,('`,,'`,('Q`#%!P#"!\4`
M!P##!P`'`,('Q0`'`,4'`,4'`,,'``<`PP<`Q@?"!Z0`!\'_V@?!^<'_TOG!
M_\'YWP<`Q`<`P@<`PP<`!P#"!P`'`,,'``<`PP<`Q0?"`,('`,('`,4'`,4'
M`,,'``<`Q0<`PP<`!P#%!P#"!P##!P`'`,('``<`PP<`!P##!P#$!P#"!P##
M!P`'`,H'`,@'`,,'`,4'`,('`,('`,('`,,'`,,'`,<'`,('`,4'`,,'``<`
MP@<`!P#%!P#%!P#"!P##!P`'`,('`,4'`,('`,('`,,'``<`Q0<`Q@<`Q`<`
M!P##!P`'`,4'``<`!P`'``<`Q@<`P@<`Q0<`PP<`!P`'`,('Q0#"!P#%!P#%
M!P##!P`'`,,'``<`PP<`!P#"!P##!P`'`,,'``<`!P`'``<`P@<`P@<`Q0<`
MP@<`PP<`Q`<`!P##!P`'`,4'``<`!P`'``<`Q@<`P@<`Q0<`PP<`!P`'`,('
MQ0#"!P#%!P#%!P##!P`'`,,'``<`PP<`!P#"!P##!P`'`,,'``<`!P`'``<`
MP@<`P@<`Q0<`P@<`P@<`Q@<`PP<`!P#"!P##!P`'`,,'`,4'`,('`,4'`,,'
M``<`P@<`Q0<`Q0<`Q0<`PP<`!P##!P#&!\('I``'P?_9!\'YP?_4^<'_P?G>
M!P##!P##!P#"!\(`!P#"!P`'`,,'``<`PP<`Q`<`P@<`!P#"!P##!P`'`,4'
M`,,'``<`PP<`!P##!P`'`,,'``<`P@<`PP<`!P#"!P`'`,,'``<`PP<`Q`<`
MP@<`PP<`!P#*!P#'!P#$!P##!P`'`,('`,('`,('``<`P@<`!P#$!P##!P#"
M!P##!P`'`,0'`,,'``<`PP<`!P##!P`'`,('`,,'``<`P@<`PP<`!P#"!P#"
M!P##!P`'`,,'``<`PP<`!P#&!P#$!P`'`,,'`,('`,,'`,('`,0'``<`P@<`
MPP<`!P##!P`'``<`!P#%!P`'`,,'``<`PP<`!P##!P`'`,('P@`'`,,'``<`
MP@<`PP<`!P##!P`'``<`!P`'`,,'P@#"!P##!P#"!P#"!P#&!P#$!P`'`,,'
M`,('`,,'`,('`,0'``<`P@<`PP<`!P##!P`'``<`!P#%!P`'`,,'``<`PP<`
M!P##!P`'`,('P@`'`,,'``<`P@<`PP<`!P##!P`'``<`!P`'`,,'P@#"!P##
M!P#"!P#"!P#$!P`'`,,'``<`P@<`PP<`!P##!P`'`,,'`,('`,,'``<`Q`<`
MPP<`PP<`!P#%!P##!P`'`,,'``<`PP<`Q@?"!Z0`!\'_V`?!^<'_UOG!_\'Y
MW0?$`,4'P@`'``<`P@<`!P##!P#"!\0`Q`<`P@<`!P##!\,`P@<`Q@?$`,('
MPP#"!P##!P#"!\,`P@<`PP?$`,('``<`P@?#`,('`,,'`,0'`,,'PP#"!P#"
M!P#'!P#$!P#"!P#%!\,`P@<`P@<`P@<`P@<`P@?"`,('`,4'PP#$!\,`P@<`
MQ`<`PP<`P@?#`,,'PP#"!P#"!P##!P#"!P#"!\,`P@<`P@<`PP?$`,('PP##
M!\,`P@<`Q@<`Q`<`P@?#`,,'`,,'`,,'Q`#"!P##!\,`PP?$``<`P@?"`,4'
M`,('PP##!\,`PP?#`,,'P@`'``<`PP<`P@<`P@?$``?$`,('``<`!P#"!P#"
M!P#$!\,`PP<`P@<`Q@<`Q`<`P@?#`,,'`,,'`,,'Q`#"!P##!\,`PP?$``<`
MP@?"`,4'`,('PP##!\,`PP?#`,,'P@`'``<`PP<`P@<`P@?$``?$`,('``<`
M!P#"!P#"!P#$!\,`PP<`PP?$`,,'PP#"!P#"!\0`PP?$`,('PP#$!\,`P@<`
MQ`<`Q`?#`,('`,('`,,'PP#"!\0`P@?$`,8'PP>D``?!_]<'P?G!_]CYP?_!
M^?D'`-P'`/\'_P?_!_\'\P<`_P?_!\0'`/0'V@?#!P#%!P#(!\0'I``'P?_6
M!\'YP?_:^<'_P?GT!\0`V0?$`/\'_P?_!_\'\@?"`/\'_P?#!\(`]`?:!\0'
M`,4'`,@'Q`>D``?!_]4'P?G!_\/YP__"^<7_POG#_\+YQ/_$^<'_P?G_!_\'
M_P?_!_\'_P?_!_\'_`?>!\\'QP?$!Z0`!\'_U0?!^<'_POG!_\/YP?_#^<'_
MP_G!_\/YP?_!^<'_P_G!_\/YP?_!^?\'_P?_!_\'_P?_!_\'_P?\!]X'SP?'
M!\0'I``'P?_5!\'YP?_"^<'_Q_G!_\/YP?_#^<'_P?G!_\/YP?_#^<'_P?G_
M!_\'_P?_!_\'_P?_!_\'_`?>!\\'QP?$!Z0`!\'_U0?!^<'_POG!_\?YP?_#
M^<'_P_G!_\'YP?_#^<'_P_G!_\'Y_P?_!_\'_P?_!_\'_P?_!_P'W@?/!\<'
MQ`>D``?!_]4'P?G!_\/YP?_&^<'_P_G!_\/YP?_!^<'_P_G!_\/YP?_!^?\'
M_P?_!_\'_P?_!_\'_P?\!]X'SP?'!\0'I``'P?_5!\'YP?_$^<'_Q?G!_\/Y
MP?_#^<'_P?G$_\3YP?_!^?\'_P?_!_\'_P?_!_\'_P?\!]X'SP?'!\0'I``'
MP?_5!\'YP?_%^<'_Q/G!_\/YP?_#^<'_P?G!_\?YP?_!^?\'_P?_!_\'_P?_
M!_\'_P?\!]X'SP?'!\0'I``'P?_5!\'YP?_&^<'_P_G!_\/YP?_#^<'_P?G!
M_\?YP?_!^?\'_P?_!_\'_P?_!_\'_P?\!]X'SP?'!\0'I``'P?_5!\'YP?_&
M^<'_P_G!_\/YP?_#^<'_P?G!_\?YP?_!^?\'_P?_!_\'_P?_!_\'_P?\!]X'
MSP?'!\0'I``'P?_5!\'YP?_&^<'_P_G!_\/YP?_#^<'_P?G!_\?YP?_!^?\'
M_P?_!_\'_P?_!_\'_P?\!]X'SP?'!\0'I``'P?_5!\'YP?_"^<'_P_G!_\/Y
MP?_#^<'_P_G!_\'YP?_'^<'_P?G_!_\'_P?_!_\'_P?_!_\'_`?>!\\'QP?$
M!Z0`!\'_U0?!^<'_P_G#_\3YP?_$^!\\'R`?$!Z0`!\'_UP?!^<'_V/G!_\'Y_P?_!_\'_P?_!_\'_P?_
M!_T'W@?/!\@'Q`>D``?!_]@'P?G!_];YP?_!^?\'_P?_!_\'_P?_!_\'_P?]
M!]\'SP?(!\0'I``'P?_9!\'YP?_4^<'_P?G_!_\'V@?#`.$'`,0'`,X'`-P'
M`,\'`-P'`,4'`/8'`-$'Q`#8!\4`R@<`Y0<`R`<`VP<`_P?J!]4'RP?%!\('
MI``'P?_:!\'YP?_2^<'_P?G_!_\'V@<`PP<`X`?"`,,'`-P'`,X'`,\'`-P'
M`,4'`/,'`-,'`,0'`-<'`,0'`,@'`.X'`-D'`/\'[`?6!\L'Q0?"!Z0`!\'_
MVP?!^<'_T/G!_\'Y_P?_!]L'`.0'P@##!P#D``?!_]P'P?G!_\[YP?_!
M^?\'_P?!\'Y
MS/_!^?\'_P?B!P#"!P##!P`'`,,'``<`P@<`Q0?%``?"``<`P@<`!P##!\0`
MP@<`!P#"!P`'`,,'`,('Q``'`,('`,,'``<`Q0<`PP<`P@?$``<`PP<`Q0?$
M`,0'`,,'``<`P@<`PP<`!P##!P`'``?%``<`P@<`P@<`Q`<`PP<`!\4`!P##
M!P`'Q0`'`,,'Q``'`,('``<`PP<`!P##!P#$!P#&!P#"!P##!P#"!P#$!P##
M!\(`!P#$!P#"!\4`!P#"!\4`!P#"!\4`!P##!P`'`,4'Q0#$!P`'`,,'``<`
MP@<`PP<`!P#"!P#"!P#"!P#"!\0`!P#"!P`'`,,'``<`PP<`_P?D!]('R0?%
M!P>D``?!_]\'S/G_!_\'XP<`P@<`PP<`!P##!P`'`,('`,4'`,@'`,,'P@#"
M!P##!P#"!P`'`,('``<`PP<`!P##!P`'`,('`,,'``<`Q0<`PP<`!P##!P`'
M`,,'`,0'`,,'`,0'`,,'``<`P@<`PP<`!P##!P`'``<`Q0<`P@<`P@<`Q`<`
MPP<`!P#%!P##!P`'`,4'`,('`,,'``<`P@<`!P##!P`'`,,'`,0'`,8'`,('
M`,,'`,,'`,0'`,4'`,0'`,('`,4'`,('`,4'`,('`,4'`,,'``<`Q0<`R`<`
M!P##!P`'`,('`,,'``<`P@<`P@<`P@<`!P##!P`'`,('``<`PP<`!P##!P#_
M!^0'T@?)!\4'!Z0`!\'__P?_!_\'RP<`PP<`P@<`PP<`!P#"!\(`!P#"!P##
M!P`'`,,'`,0'`,,'P@#"!P##!P##!P##!P`'`,,'``<`PP<`!P#"!P##!P`'
M`,4'`,,'``<`PP<`!P##!P#$!P##!P#$!P##!P`'`,('`,,'``<`PP<`!P`'
M`,,'``<`P@<`P@<`Q`<`PP<`!P##!P`'`,,'``<`PP<`!P#"!P##!P`'`,('
M``<`PP<`!P##!P#$!P#$!P`'`,('`,,'``<`P@<`!P#"!P#$!P#$!P#"!P##
M!P`'`,('`,,'``<`P@<`PP<`!P##!P`'`,,'``<`PP<`Q`<`!P##!P`'`,('
M`,,'``<`P@<`P@<`P@<`!P##!P`'`,('``<`PP<`!P##!P#_!^0'T@?)!\4'
M!Z0`!\'__P?_!_\'S`?#`,0'PP##!\(`!P`'`,,'PP##!\,`Q0<`Q`<`PP?$
M`,,'`,,'`,('Q`#"!\0`P@<`P@?#`,('`,4'`,,'`,('Q`#"!\0`Q0?$`,0'
MQ`#"!P##!\,`P@?$`,('`,('PP#"!P#"!P#"!P#%!\0`P@?#`,('`,,'`,('
MPP#"!P##!\0`P@<`!P`'`,,'`,('Q`#%!\0`P@<`PP?#`,,'P@##!\(`Q0<`
MQ`<`PP?#`,('`,,'PP#"!P##!\,`P@<`PP<`P@?#`,,'PP#%!P`'`,,'``<`
MPP?#`,('`,('`,('`,('`,('Q`#"!P`'`,('PP#"!P##!P`'`/\'XP?2!\D'
MQ`<'I``'P?__!_\'_P?_!\L'`/0'`.L'`.L'`/\'_P?_!^D'U0?*!\4'P@>D
M``?!__\'_P?_!_\'QP?$`/4'`.<'Q`#H!\0`_P?_!_\'Z@?5!\H'Q0?"!Z0`
M!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_
M!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?0!\0`V`?%`,H'`.4'
M`,@'`-L'`-`'`/4'`/\'_P?N!]<'S`?&!\('I``'P?__!_\'_P?_!\\'`,0'
M`-<'`,0'`,@'`.X'`-D'`.D'`-\'`,<'`/\'_P?J!]4'RP?%!\('I``'P?__
M!_\'_P?_!\\'`-P'`,0'`,@'`.X'`-D'`.D'`-\'`,<'`/\'_P?J!]4'RP?%
M!\('I``'P?__!_\'_P?_!\\'`,8'P@#"!\,`PP?"`,,'P@#%!P#$!P##!\,`
MP@?"`,('PP#"!\(`P@?#`,('``?"`,,'PP##!\,`Q0<`!P`'P@#"!\(`P@?#
M`,('P@`'PP`'P@##!\,`P@?"``<`P@?#`,('``?"`,4'`,('P@#%!P`'P@##
M!\,`P@?"`,4'PP##!\,`P@?#``?"`,('Q`#"!P#"!\,`P@?"`,('PP#_!_\'
MYP?4!\H'Q0<'I``'P?__!_\'_P?_!\\'`,8'`,('`,,'``<`P@<`!P#"!P#$
M!\4`PP<`PP<`!P#"!P##!P`'`,('`,,'``?"`,('``<`PP<`!P##!P#$!P`'
MP@#"!P`'`,('`,,'``<`P@<`P@<`P@<`Q0<`!P#"!P`'`,,'``?"`,('`,0'
M``<`P@<`Q`?"`,('``<`PP<`!P#%!P##!P`'`,,'``<`P@<`P@<`!P##!P`'
M``<`PP<`!P#"!P##!P#_!_\'YP?3!\H'Q0<'I``'P?__!_\'_P?_!\\'`,8'
M`,('`,,'`,('`,0'`,,'P@`'`,0'`,('Q0`'`,('Q0`'`,('Q0`'`,,'``<`
MQ0?%`,0'``<`PP<`!P#"!P##!P`'`,('`,('`,('`,('Q``'`,('``<`PP<`
M!P##!P#$!P#"!P#&!P##!P`'`,,'``<`Q0<`Q0<`PP<`!P#"!P#"!P`'`,,'
M``<`!\4`!P#"!\4`_P?_!^<'TP?*!\4'!Z0`!\'__P?_!_\'_P?/!P#&!P#"
M!P##!P##!P#$!P#%!P#$!P#"!P#%!P#"!P#%!P#"!P#%!P##!P`'`,4'`,@'
M``<`PP<`!P#"!P##!P`'`,('`,('`,('``<`PP<`!P#"!P`'`,,'``<`PP<`
MQ`<`PP<`Q0<`PP<`!P##!P`'`,4'`,4'`,,'``<`P@<`P@<`!P##!P`'``<`
MQ0<`P@<`_P?_!^D'U`?*!\4'P@>D``?!__\'_P?_!_\'SP<`Q`<`!P#"!P##
M!P`'`,('``<`P@<`Q`<`Q`<`P@<`PP<`!P#"!P##!P`'`,('`,,'``<`PP<`
M!P##!P`'`,,'`,0'``<`PP<`!P#"!P##!P`'`,('`,('`,('``<`PP<`!P#"
M!P`'`,,'``<`PP<`Q`<`!P#"!P#$!P##!P`'`,,'``<`Q0<`PP<`!P##!P`'
M`,('`,('``<`PP<`!P`'`,,'``<`P@<`PP<`_P?_!^<'TP?*!\4'!Z0`!\'_
M_P?_!_\'_P?0!\0`P@<`PP?#`,,'P@##!\(`Q0<`Q`<`PP?#`,('`,,'PP#"
M!P##!\,`P@<`PP<`P@?#`,,'PP#%!P`'`,,'``<`PP?#`,('`,('`,('`,('
M`,('Q`#"!P`'`,('PP#"!P##!P#$!P#"!\(`Q0<`PP<`P@?#`,,'`,4'PP##
M!\,`P@<`P@<`P@<`!\0`P@<`P@?#`,,'`,('PP#"!P#_!_\'Y@?3!\D'Q0<'
MI``'P?__!_\'_P?_!_\'_P?_!\H'`/\'_P?Q!]D'S`?&!\,'I``'P?__!_\'
M_P?_!_\'_P?_!\H'`/\'_P?Q!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'_P?_
M!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'
M!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'
M_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'
M_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'
MI``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_
M!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W
M!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'
MP?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'
M_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'
MS@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__
M!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_
M!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'
M!\,'I``'P?__!_\'_P?_!_\'_P?_!_\'_P?W!]L'S@?'!\,'I``'P?__!_\'
M_P?_!_0'_P#"`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\']`<`_O_"
M`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\']`<`P?_\!Z3"`/\'_P?_
M!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\']`<`P?_\!Z3"`/\'_P?_!_L'W@?/
M!\<'Q`>D``?!__\'_P?_!_\']`<`P?_\!Z3"`/\'_P?_!_L'W@?/!\<'Q`>D
M``?!__\'_P?_!_\']`<`P?_\!Z3"`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'
M_P?_!_\']`<`P?_\!Z3"`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\'
M]`<`P?_\!Z3"`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\']`<`P?_9
M!\0`PP<`PP<`UP>DP@#_!_\'_P?[!]X'SP?'!\0'I``'P?__!_\'_P?_!_0'
M`,'_V`<`Q`<`P@<`P@<`V`>DP@#_!_\'_P?[!]X'SP?'!\0'I``'P?__!_\'
M_P?_!_0'`,'_V`<`Q`<`P@<`!P#9!Z3"`/\'_P?_!_L'W@?/!\<'Q`>D``?!
M__\'_P?_!_\']`<`P?_8!P#$!P#"!\(`V@>DP@#_!_\'_P?[!]X'SP?'!\0'
MI``'P?__!_\'_P?_!_0'`,'_V`<`Q`<`P@?"`-H'I,(`_P?_!_\'^P?>!\\'
MQP?$!Z0`!\'__P?_!_\'_P?T!P#!_]@'`,0'`,('``<`V0>DP@#_!_\'_P?[
M!]X'SP?'!\0'I``'P?__!_\'_P?_!_0'`,'_V`<`Q`<`P@<`P@<`V`>DP@#_
M!_\'_P?[!]X'SP?'!\0'I``'P?__!_\'_P?_!_0'`,'_V`<`Q`<`P@<`PP<`
MUP>DP@#_!_\'_P?[!]X'SP?'!\0'I``'P?__!_\'_P?_!_0'`,'_V0?$`,,'
M`,0'`-8'I,(`_P?_!_\'^P?>!\\'QP?$!Z0`!\'__P?_!_\'_P?T!P#!__P'
MI,(`_P?_!_\'^P?>!\\'QP?$!Z0`!\'__P?_!_\'_P?T!P#!__P'I,(`_P?_
M!_\'^P?>!\\'QP?$!Z0`!\'__P?_!_\'_P?T!P#!__P'I,(`_P?_!_\'^P?>
M!\\'QP?$!Z0`!\'__P?_!_\'_P?T!P#!__P'I,(`_P?_!_\'^P?>!\\'QP?$
M!Z0`!\'__P?_!_\'_P?T!P#!__P'I,(`_P?_!_\'^P?>!\\'QP?$!Z0`!\'_
M_P?_!_\'_P?T!P#!__P'I,(`_P?_!_\'^P?>!\\'QP?$!Z0`!\'__P?_!_\'
M_P?T!P#!__VDP@#_!_\'_P?[!]X'SP?'!\0'I``'P?__!_\'_P?_!_0'_P#"
M`/\'_P?_!_L'W@?/!\<'Q`>D``?!__\'_P?_!_\']`?_`,(`_P?_!_\'^P?>
M!\\'QP?$!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'_
M_P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'
M_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'
MQP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_
M!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_
M!_\']P?;!\X'QP?#!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#
M!Z0`!\'__P?_!_\'_P?_!_\'_P?_!_\']P?;!\X'QP?#!Z0`!_^D_Z3_I/^D
M_Z3_I/^D_Z3_I/>DW*3.I,>DPZ2D`/\`_P#_`/\`_P#_`/\`_P#_`/@`W`#.
M`,<`PP#"``P```"`````@`"`@````("``(``@(#`P,#`W,"FRO!`(`!@(`"`
M(`"@(`#`(`#@(```0``@0`!`0`!@0`"`0`"@0`#`0`#@0```8``@8`!`8`!@
M8`"`8`"@8`#`8`#@8```@``@@`!`@`!@@`"`@`"@@`#`@`#@@```H``@H`!`
MH`!@H`"`H`"@H`#`H`#@H```P``@P`!`P`!@P`"`P`"@P`#`P`#@P```X``@
MX`!`X`!@X`"`X`"@X`#`X`#@X````$`@`$!``$!@`$"``$"@`$#``$#@`$``
M($`@($!`($!@($"`($"@($#`($#@($``0$`@0$!`0$!@0$"`0$"@0$#`0$#@
M0$``8$`@8$!`8$!@8$"`8$"@8$#`8$#@8$``@$`@@$!`@$!@@$"`@$"@@$#`
M@$#@@$``H$`@H$!`H$!@H$"`H$"@H$#`H$#@H$``P$`@P$!`P$!@P$"`P$"@
MP$#`P$#@P$``X$`@X$!`X$!@X$"`X$"@X$#`X$#@X$```(`@`(!``(!@`("`
M`("@`(#``(#@`(``((`@((!`((!@(("`(("@((#`((#@((``0(`@0(!`0(!@
M0("`0("@0(#`0(#@0(``8(`@8(!`8(!@8("`8("@8(#`8(#@8(``@(`@@(!`
M@(!@@("`@("@@(#`@(#@@(``H(`@H(!`H(!@H("`H("@H(#`H(#@H(``P(`@
MP(!`P(!@P("`P("@P(#`P(#@P(``X(`@X(!`X(!@X("`X("@X(#`X(#@X(``
M`,`@`,!``,!@`,"``,"@`,#``,#@`,``(,`@(,!`(,!@(,"`(,"@(,#`(,#@
M(,``0,`@0,!`0,!@0,"`0,"@0,#`0,#@0,``8,`@8,!`8,!@8,"`8,"@8,#`
M8,#@8,``@,`@@,!`@,!@@,"`@,"@@,#`@,#@@,``H,`@H,!`H,!@H,"`H,"@
MH,#`H,#@H,``P,`@P,!`P,!@P,"`P,"@P,#_^_"@H*2`@(#_````_P#__P``
+`/__`/\`______^`
`
end
(UUEncoded file named: pic30048.pcx follows)
begin 644 pic30048.pcx
M"@4!"`````">`7X`````````````````````````````````````````````
M```````````````````````````!GP$!````````````````````````````
M``````````````````````````````````````````````````#_!_\'_P?_
M!_\'\P?9!\T'Q@?#!P<`!______________R_]G_S?_&_\/_I``'P?__!_\'
M_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!
M_\('_P3_!/\$_P3_!/$$V`3,!,8$!,('I``'P?_"!\<$QG?_!/\$_P3_!/\$
MZ@35!,L$Q03"!Z0`!\'_P@?%!,IW_P3_!/\$_P3_!-D$S_\`S_\`P@3,_\/_
M`,($P@>D``?!_\('Q`3#=\8$PW?_!/\$_P3_!/\$V`3!_\T'I`#!_\T'I`#"
M!,'_RP?"!Z0`P@3"!Z0`!\'_P@?#!,-WPP3"=\,$PG?%!,;__P3_!/\$_P3_
M!,T$P?_-!Z0`P?_"!\D`P@>D`,($P?_+!\('I`#"!,('I``'P?_"!\,$PG?"
M!,9WP@3#=\,$PO__!/\$_P3_!/\$T03!_\T'I`#!_\('R0#"!Z0`P@3!_\,'
MP@#$!\(`P@>D`,($P@>D``?!_\('P@3"=\($PW?"!,)WP@3#=\,$PO__!/\$
M_P3_!/\$T03!_\T'I`#!_\('`,<'`,('I`#"!,'_Q`?"`,('P@##!Z0`P@3"
M!Z0`!\'_P@?"!,)WP@3"=\@$=\0$PO_&!,/_!,/_P@3$_\($P___!/\$_P3_
M!/@$P?_-!Z0`P?_"!P#'!P#"!Z0`P@3!_\4'Q`#$!Z0`P@3"!Z0`!\'_P@?"
M!,)W!,)WS@3%_\,$PO_"!,+_P@3"_\($PO\$PO__!/\$_P3_!/D$P?_-!Z0`
MP?_"!P#'!P#"!Z0`P@3!_\8'P@#%!Z0`P@3"!Z0`!\'_P@?"!,)W!,)WS@3"
M_\8$PO_"!,+_P@3"_\($PO\$PO__!/\$_P3_!/D$P?_-!Z0`P?_"!P#'!P#"
M!Z0`P@3!_\4'Q`#$!Z0`P@3"!Z0`!\'_P@?"!,)WP@3"=\T$PO_&!,+_P@3"
M_\($PO_"!,+_!,+__P3_!/\$_P3Y!,'_S0>D`,'_P@<`QP<`P@>D`,($P?_$
M!\(`P@?"`,,'I`#"!,('I``'P?_"!\($PG?"!,-WP@3"=\@$PO_&!,+_P@3"
M_\($PO_"!,+_!,+__P3_!/\$_P3Y!,'_PP?&`,0'I`#!_\('`,<'`,('I`#"
M!,'_PP?"`,0'P@#"!Z0`P@3"!Z0`!\'_P@?#!,)WP@3&=\($PG?$!,;_P@3"
M_\($PO_#!,3_P@3"__\$_P3_!/\$^03!_\,'Q@#$!Z0`P?_"!\D`P@>D`,($
MP?_+!\('I`#"!,('I``'P?_"!\,$PW?#!,)WPP3#=_\$_P3_!/\$_P37!,'_
MS0>D`,'_S0>D`,($P?_+!\('I`#"!,('I``'P?_"!\0$PW?%!,1W_P3_!/\$
M_P3_!-@$P?_.I`#!_\ZD`,($P?_+I,.D`,($P@>D``?!_\('Q03*=_\$_P3_
M!/\$_P39!-T`PP#"!,P`Q`#"!,('I``'P?_"!\<$QG?_!/\$_P3_!/\$Z@35
M!,L$Q03"!Z0`!\'_P@?_!/\$_P3_!/\$\038!,P$Q@0$P@>D``?!__\'_P?_
M!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'_
M_P?_!_\'_P?_!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'
MI``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,
M!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'
M\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!__\'_P?_
M!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'_
M_P?_!_\'_P?_!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'
MI``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?4!P`'`/P'Q`#(!P#"
M!\0`X0<`P@?#`,,'`,0'`,4'`,('Q0##!P#&!P`'`,4'`,H'`-@'`,0'`-H'
M`,T'`-0'``<`Q0<`W0?/!\<'Q`>D``?!_]\'S/GH!P`'`/L'`,0'`,<'``<`
MQ`<`X`<`!P##!P#"!\(`PP<`Q`?"`,('`,4'PP#&!P`'`-`'`-T'`-H'`,T'
M`-0'`,<'`-T'SP<'`,8'PP>D``?!_]X'P?G,_\'YYP<`!P#[!P#,!P`'`.4'
M``<`Q@?"`,,'`,0'P@#"!P#'!P#&!P`'`-`'`-T'`-H'`,T'`-0'`,<'`-T'
MSP<'`,8'PP>D``?!_]T'P?G!_\SYP?_!^>,'Q``'Q`##!\,`P@?$`,,'PP#"
M!P`'P@#&!\,`P@?"``?"`,('PP#"!\(`!P#%!P#&!P#$!P#"!P#&!P#"!P#"
M!\0`!P`'P@#"!P##!P#"!\(`Q`<`P@<`Q@<`!P#"!P##!P`'`,('Q`#$!P#%
M!P#"!\0`P@<`!P`'P@#$!P#&!\(`P@<`!\(`P@?$`,('P@`'`,,'`,,'PP#"
M!\(`!\,`!\(`PP?"`,4'Q`#"!P#"!P`'`,('`,('``?"`,('`,,'`,('PP#"
M!P`'`,('Q`#%!\,`P@?"`,('Q``'`,,'``?#``?"`,,'PP#"!P`'P@#"!\(`
MQ@?"!Z0`!\'_W`?!^<'_SOG!_\'YX0<`PP<`!P##!P`'`,,'``<`PP<`!P##
M!P`'P@#"!P#$!P##!P`'`,('`,('`,,'``<`R`<`RP<`P@<`Q@<`P@<`!P##
M!P`'P@#"!P`'`,,'``<`P@<`PP<`PP?#`,,'``<`P@<`PP<`!P#"!P##!P##
M!P#%!P#"!P##!P`'``?"`,('`,,'`,4'`,('``?"`,('``<`PP<`!P#"!P##
M!P#"!P##!P`'`,('`,('`,('``<`P@<`Q`<`PP<`!P#"!P#$!P#"!\(`P@<`
M!P##!P#%!P`'``<`!P##!P#(!P`'`,('`,,'``<`PP<`!P#"!P#"!P`'`,,'
M``?"`,('``<`Q@?#!Z0`!\'_VP?!^<'_T/G!_\'YX`<`PP<`!P##!P`'`,,'
M``<`PP<`!\4`!P##!P#$!\4`!P#"!P#"!P##!P`'`,@'`,H'`,,'`,8'`,('
M``<`PP<`!P##!P`'`,,'`,('`,0'`,<'`,('`,('``<`P@<`P@<`Q@<`PP<`
MQ`<`PP<`PP<`!P`'`,,'`,('`,<'`,,'`,,'``<`PP<`!P#"!P#"!P##!P#%
M!P#"!P#"!P#"!P#"!P#&!P##!P`'`,('`,0'`,('`,,'`,('``<`PP?$``<`
M!P`'`,,'`,4'Q``'`,('`,,'``<`PP<`!P#"!P#"!P`'Q0`'`,,'``<`Q@?#
M!Z0`!\'_V@?!^<'_TOG!_\'YWP<`PP<`!P##!P`'`,,'``<`PP<`!P#%!P##
M!P#$!P#%!P#"!P#"!P##!P`'`,@'`,H'`,,'`,8'`,('``<`PP<`!P##!P`'
M`,,'`,,'`,,'`,<'`,('`,,'P@#"!\4`Q0<`PP<`Q`<`PP<`PP<`!P`'`,,'
M`,('`,@'`,('`,,'``<`PP<`!P#"!P#"!P##!P#%!P#"!P#"!P#"!P##!P#%
M!P##!P`'`,('`,0'`,('`,,'`,('``<`P@<`PP<`!P`'``<`PP<`Q`<`PP<`
M!P#"!P##!P`'`,,'``<`P@<`P@<`!P#%!P##!P`'`,8'PP>D``?!_]D'P?G!
M_]3YP?_!^=X'`,,'``<`PP<`!P##!P`'`,,'``<`PP<`!P##!P#$!P##!P`'
M`,('`,('`,,'``<`R`<`Q`<`Q`<`Q`<`Q`<`P@?"`,('`,,'``<`PP<`!P#"
M!\(`!P#"!P`'`,0'`,,'`,('`,,'P@#%!P#"!P##!P##!P##!P#$!P##!P`'
M``<`PP<`!P#'!P#"!P`'`,,'``<`PP<`!P#"!P`'`,0'`,,'``<`P@<`P@<`
MP@<`!P#"!P#$!P##!P#"!\(`Q0<`P@<`PP<`PP<`PP<`PP<`!P`'``<`PP<`
MQ`<`PP<`!P#"!P##!P`'`,('P@`'`,('`,('``<`PP<`!P##!P`'`,8'PP>D
M``?!_]@'P?G!_];YP?_!^=X'Q``'Q`##!\,`P@?$`,,'PP#"!P##!P#%!\,`
MP@<`P@<`PP?#`,('`,('`,8'Q`#"!P#"!P#%!\0`PP<`Q`?$``<`PP<`P@?"
M``<`P@?"`,('`,4'PP##!P#$!P#%!P##!\,`Q`<`PP<`Q`?$`,('``<`PP<`
M!P#$!P##!\(`P@<`PP<`!\0`P@<`P@<`!P#%!\,`P@<`P@<`P@<`P@<`P@?"
M`,('`,('Q`##!P##!P#"!P#"!P##!P##!P#$!\0`!P`'`,('Q`#%!\0`!P##
M!\0`P@?"``<`!P#"!P#"!P#"!\,`P@<`PP<`P@<`Q@?"!Z0`!\'_UP?!^<'_
MV/G!_\'Y[@<`_P?'!P#'!P#_!]\'`,@'`.8'`.\'Q@<`U`?*!\4'P@>D``?!
M_]8'P?G!_]KYP?_!^>T'`/\'Q0?"`,0'Q`#_!^`'`,@'`.0'P@#P!\('Q`#5
M!\H'Q0?"!Z0`!\'_U0?!^<'_P_G#_\+YQ?_"^D``?!_]4'P?G!_\/YP?_&^<'_P_G!_\/YP?_!^<'_
MP_G!_\/YP?_!^?\'_P?_!_\']P?;!\X'QP?#!Z0`!\'_U0?!^<'_Q/G!_\7Y
MP?_#^<'_P_G!_\'YQ/_$^<'_P?G_!_\'_P?_!_<'VP?.!\<'PP>D``?!_]4'
MP?G!_\7YP?_$^<'_P_G!_\/YP?_!^<'_Q_G!_\'Y_P?_!_\'_P?W!]L'S@?'
M!\,'I``'P?_5!\'YP?_&^<'_P_G!_\/YP?_#^<'_P?G!_\?YP?_!^?\'_P?_
M!_\']P?;!\X'QP?#!Z0`!\'_U0?!^<'_QOG!_\/YP?_#^<'_P_G!_\'YP?_'
M^<'_P?G_!_\'_P?_!_<'VP?.!\<'PP>D``?!_]4'P?G!_\;YP?_#^<'_P_G!
M_\/YP?_!^<'_Q_G!_\'Y_P?_!_\'_P?W!]L'S@?'!\,'I``'P?_5!\'YP?_"
M^<'_P_G!_\/YP?_#^<'_P_G!_\'YP?_'^<'_P?G_!_\'_P?_!_<'VP?.!\<'
MPP>D``?!_]4'P?G!_\/YP__$^<'_Q/G#_\+YP?_'^<'_P?G_!_\'_P?_!_<'
MVP?.!\<'PP>D``?!_]8'P?G!_]KYP?_!^?\'_P?_!_\']P?D``?!_]D'P?G!_]3YP?_!^?\'_P?_
M!_\'^0?D``?!_]P'
MP?G!_\[YP?_!^?\'_P?_!_\'^@?=!\\'QP?$!Z0`!\'_W0?!^<'_S/G!_\'Y
M_P?_!_\'_P?[!]T'SP?'!\0'I``'P?_>!\'YS/_!^?\'_P?_!_\'^P?>!\\'
MQP?$!Z0`!\'_WP?,^?\'_P?_!_\'_`?>!\\'QP?$!Z0`!\'__P?_!_\'_P?_
M!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'
M_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!
M__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#
M!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'
MS`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_
M!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'
M_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!
M__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#
M!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'
MS`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_
M!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'
M_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!^\'_P#"`/\'^0?D``?!__\'_P?O!P#!__P'I,(`
M_P?Y!]P'S@?'!\0'I``'P?__!_\'[P<`P?_\!Z3"`/\'^0?DP@#_!_D'W`?.!\<'Q`>D``?!__\'_P?O!P#!__P'
MI,(`_P?Y!]P'S@?'!\0'I``'P?__!_\'[P<`P?_\!Z3"`/\'^0?DP@#_!_D'W`?.!\<'Q`>D``?!__\'_P?O!P#!
M_]D'Q`##!P##!P#7!Z3"`/\'^0?DP@#_!_D'W`?.!\<'Q`>D``?!__\'_P?O!P#!_]@'`,0'
M`,('``<`V0>DP@#_!_D'W`?.!\<'Q`>D``?!__\'_P?O!P#!_]@'`,0'`,('
MP@#:!Z3"`/\'^0?DP@#_!_D'
MW`?.!\<'Q`>D``?!__\'_P?O!P#!_]D'Q`##!P#$!P#6!Z3"`/\'^0?DP@#_!_D'W`?.!\<'Q`>D``?!__\'_P?O
M!P#!__P'I,(`_P?Y!]P'S@?'!\0'I``'P?__!_\'[P<`P?_\!Z3"`/\'^0?<
M!\X'QP?$!Z0`!\'__P?_!^\'`,'__`>DP@#_!_D'W`?.!\<'Q`>D``?!__\'
M_P?O!P#!__P'I,(`_P?Y!]P'S@?'!\0'I``'P?__!_\'[P<`P?_\!Z3"`/\'
M^0?D``?!__\'_P?_!_\'_P?R
M!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'
M_P?_!_('V0?,!\8'PP>D``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__
M!_\'_P?_!_\'\@?9!\P'Q@?#!Z0`!\'__P?_!_\'_P?_!_('V0?,!\8'PP>D
M``?!__\'_P?_!_\'_P?R!]D'S`?&!\,'I``'P?__!_\'_P?_!_\'\@?9!\P'
MQ@?#!Z0`!_^D_Z3_I/^D_Z3RI-FDS:3&I,.DI`#_`/\`_P#_`/\`\P#9`,T`
MQ@##`,(`#````(````"``("`````@(``@`"`@,#`P,#
First, thanks for releasing such a nice product as Open Source. I
really appreciate your efforts.
I build 4.5.1 on Redhat 6.2 (Pentium).
When I create a new project that contains the following header file
FilterParams.h
----------------------
class {
public:
FilterParams(float *
int numParams;
float *params;
} FilterParams, *FilterParamsPtr;
----------------------------
cbrowser hangs forever.
Note there is a syntax error in this header file - a missing parenthesis
on the ctor declaration.
Once I fixed this bug, cbrowser runs as expected.
However, it would be nice if cbrowser had a more resilient error
recovery strategy :-)
Thanks again!
--
Joe VanAndel
National Center for Atmospheric Research
http://www.atd.ucar.edu/~vanandel/
Internet: vanandel@ucar.edu
begin:vcard
n:VanAndel;Joe
tel;fax:303-497-2044
tel;work:303-497-2071
x-mozilla-html:FALSE
url: http://www.atd.ucar.edu/~vanandel
org:National Center for Atmospheric Research;Remote Sensing Facility
adr:;;P.O. Box 3000;Boulder;CO;80307-3000;
version:2.1
email;internet:vanandel@ucar.edu
x-mozilla-cpt:;0
fn:Joe VanAndel
end:vcard
From mdejong@cygnus.com Wed Aug 2 14:30:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Wed, 02 Aug 2000 14:30:00 -0000
Subject: SN Parsers
Message-ID:
Originally sent by : Andreas Kupries
> Kristoffer Lawson wrote:
>> Andreas Kupries wrote:
>>> Yes, this include structure looked very nice when I played with my
>>> recend download of SourceNavigator (Thanks Mo). Using the
>>> infrastructure of SN (C parser, database of meta-information about
>>> the code) it should be easy to come up with some additional views
>>> showing us the, hm, 'tightly knotted' spots in the core.
>> I agree that SN is a great piece of software and highly useful for
>> that kind of stuff. I suggest everyone here tries it out.
>> Now if only I could get it properly interfaced with emacs and to
>> understand XOTcl classes etc ... ;-)
> Hey, that reminds me. If anyone would like to help improve the Tcl
> language parser in Source-Navigator, we would really like to hear
> from you on the SN mailing list.
At first I wanted to say 'Just use the tcl parser itself, as provided
by 'Tcl_ParseCommand' and 'Tcl_ParseExpr' and possibly extended from the
tcl side [*]', but when I realized that SN needs column and line
information, something these procedures do not provide.
> Some folks have already started working on a Perl and Python
> parser. Source-Navigator already has a Tcl parser, but it is not
> that great.
I glanced over the code and think that it is at least partly written
with the help of some scanner/parser generator I don't recognize.
> What we really need is for someone to write a front end
> to the regular Tcl parser that writes out Source-Navigator
> symbols. It would not be that large a project, we already have most
> of the parser utils in place.
Some other things.
Sebastien brought Autodoc back into focus and I remembered that I
wanted to rewrite it to use an extensible frontend to scan down
through a directory tree and apply a set of 'extractors' to all
eligible files. And part of the reason for the graph code in tcllib
was that I wanted some database to store the extracted relations
into.
Now with SN still in my mind I realize that SN has that framework of
scanners and database already in place. So, with some specialized
scanners to extract (or just take note of the location of)
documentation for procedures, classes, variables, etc. SN can subsume
Autodoc, Tydoc, TNA, robodoc, doxygen etc. and so on ... The only
other thing required are some backends which read the information from
the database (and possibly the code) and then generate some nicely
formatted pages. Special views, so to speak. And one formatter could
display such reports in Tk widgets (canvas, text, other ?)
Speaking of views, I would like to point you and the SN team to `VCG`,
a graph layout tool distributed under the GPL (see
http://www.cs.uni-sb.de/RW/users/sander/html/gsvcg1.html ). I guess
that the creation of a library from VCG's source for using its layout
algorithms is hard, but it has a batch mode where it processes a
textual graph description and then returns the description augmented
with node positions. Applications in SN are possibly the existing
include/symbol reference views (which have a certain irregularity in
their layout behaviour) and the creation of new (printable) views
showing chosen references and/or dependencies for the entire project.
From mdejong@cygnus.com Wed Aug 2 16:10:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Wed, 02 Aug 2000 16:10:00 -0000
Subject: snavigator on Linux Sparc64
References: <398845DE.C5BCBD9F@lmc.ericsson.se>
Message-ID:
On Wed, 2 Aug 2000, root wrote:
> Hi,
>
> I have download the snavigator on a Linux Sparc64 (Ultra 5) and I try
> to compile it.
> I get two errors in the tclPosixStr.c file due to duplicate case value
> (SIGLOST and SIGPWR).
> In /usr/include/bits/signum.h we have the following definitions:
> #define SIGLOST 29
> #define SIGPWR SIGLOST
>
> Due to this definitions I get the error mentioned above. When looking at
> the code we have:
>
> #if defined(SIGLOST) && (!defined(SIGIOT) || (SIGLOST != SIGIOT)) &&
> (!defined(SIGURG) || (SIGLOST != SIGURG)) && (!defined(SIGPROF) ||
> (SIGLOST != SIGPROF)) && (!defined(SIGIO) || (SIGLOST != SIGIO))
> case SIGLOST: return "SIGLOST";
>
> and
>
> #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)))
> case SIGPWR: return "SIGPWR";
>
> We can see clearly that this is causing the error.
>
> Now, to fix this error I change the SIGPWR line to:
>
> #if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) &&
> (!defined(SIGLOST) || (SIGPWR != SIGLOST))
> case SIGPWR: return "SIGPWR";
>
> But I do not know the impact of this change in the code and on other
> systems. It may be more appropriate to add the
> !defined(SIGPWR) || (SIGLOST != SIGPWR) to the SIGLOST define
> statement.
> I would apreciate if you can let me know if this chande is OK or not.
>
> Thanks,
> Dan
Could you compare your changes to the most recent CVS version
of Tcl/Tk in the Ajuba CVS? I think there were some Sparc Linux
fixes that have already been applied.
http://dev.scriptics.com/software/tcltk/netcvs.html
Mo DeJong
Red Hat Inc
From mdejong@cygnus.com Wed Aug 2 16:22:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Wed, 02 Aug 2000 16:22:00 -0000
Subject: snavigator on Linux Sparc64
References:
Message-ID:
On Thu, 3 Aug 2000, Ben Elliston wrote:
> Could you compare your changes to the most recent CVS version of
> Tcl/Tk in the Ajuba CVS? I think there were some Sparc Linux fixes
> that have already been applied.
>
> Nevertheless, this problem is solely in Tcl. I would be surprised if Ajuba
> haven't fix it by now--in which case, we could import the patch.
>
> Ben
Yes, but it would be nice if we could get someone to test changes
out to make sure it works before we apply them. We do not have
a sparc Linux machine here in the SOMA office, so we can't
really test it.
Mo DeJong
Red Hat Inc
From bje@redhat.com Wed Aug 2 16:28:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Wed, 02 Aug 2000 16:28:00 -0000
Subject: snavigator on Linux Sparc64
References:
Message-ID:
Could you compare your changes to the most recent CVS version of
Tcl/Tk in the Ajuba CVS? I think there were some Sparc Linux fixes
that have already been applied.
Nevertheless, this problem is solely in Tcl. I would be surprised if Ajuba
haven't fix it by now--in which case, we could import the patch.
Ben
From thomas.heller@ion-tof.com Thu Aug 3 00:17:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Thu, 03 Aug 2000 00:17:00 -0000
Subject: Python parser for SN
Message-ID: <200008030717.JAA22453@mail.ion-tof.com>
This patch contains a python parser and syntax highlighting for
python.
Since I don't have automake on my development system (I use NT),
i had to write Makefile.in's and Makefile.am's by hand.
Enjoy!
Thomas Heller
diff -c2rN SN451-p0005/snavigator/ChangeLog SN451/snavigator/ChangeLog
*** SN451-p0005/snavigator/ChangeLog Tue Aug 1 17:06:04 2000
--- SN451/snavigator/ChangeLog Tue Aug 1 19:29:42 2000
***************
*** 1,2 ****
--- 1,23 ----
+ 2000-08-01 Thomas Heller
+
+ * parsers/python/README: New file.
+ * parsers/python/pybrowser.l: New file.
+ * parsers/python/Makefile.in: New file.
+ * parsers/python/Makefile.am: New file.
+
+ * parsers/Makefile.in: Added python parser subdir.
+ * parsers/Makefile.am: Added python parser subdir.
+
+ * etc/sn_prop.cfg.in: Python parser support.
+ * configure.in: Python parser support.
+ * configure: Python parser support.
+
+ * hyper/py_high.l: New file. Python syntax highlight support.
+
+ * hyper/Makefile.in: Python syntax highlight support.
+ * hyper/Makefile.am: Python syntax highlight support.
+ * hyper/highlight.c: Python syntax highlight support.
+ * gui/sninit.tcl: Python syntax highlight support.
+
2000-07-27 Warren Jones
diff -c2rN SN451-p0005/snavigator/configure SN451/snavigator/configure
*** SN451-p0005/snavigator/configure Wed Apr 12 19:52:50 2000
--- SN451/snavigator/configure Tue Aug 1 19:06:53 2000
***************
*** 4351,4354 ****
--- 4351,4355 ----
parsers/sendmail/Makefile
parsers/tcl/Makefile
+ parsers/python/Makefile
parsers/java/Makefile
parsers/libjcreuse/Makefile
***************
*** 4579,4582 ****
--- 4580,4584 ----
parsers/sendmail/Makefile
parsers/tcl/Makefile
+ parsers/python/Makefile
parsers/java/Makefile
parsers/libjcreuse/Makefile
diff -c2rN SN451-p0005/snavigator/configure.in SN451/snavigator/configure.in
*** SN451-p0005/snavigator/configure.in Tue Aug 1 17:01:12 2000
--- SN451/snavigator/configure.in Tue Aug 1 19:07:41 2000
***************
*** 407,410 ****
--- 407,411 ----
parsers/sendmail/Makefile
parsers/tcl/Makefile
+ parsers/python/Makefile
parsers/java/Makefile
parsers/libjcreuse/Makefile
diff -c2rN SN451-p0005/snavigator/etc/sn_prop.cfg.in SN451/snavigator/etc/sn_prop.cfg.in
*** SN451-p0005/snavigator/etc/sn_prop.cfg.in Tue Jun 29 00:09:02 1999
--- SN451/snavigator/etc/sn_prop.cfg.in Tue Aug 1 19:09:22 2000
***************
*** 243,246 ****
--- 243,253 ----
-high_cmd $sn_path(bindir)/chbrowser
+ # Python
+
+ sn_add_parser python \
+ -suffix {*.py *.pyw} \
+ -brow_cmd $sn_path(bindir)/pybrowser \
+ -high_cmd $sn_path(bindir)/pybrowser
+
# Files without a parser
diff -c2rN SN451-p0005/snavigator/gui/sninit.tcl SN451/snavigator/gui/sninit.tcl
*** SN451-p0005/snavigator/gui/sninit.tcl Tue Mar 14 19:40:21 2000
--- SN451/snavigator/gui/sninit.tcl Tue Aug 1 19:11:02 2000
***************
*** 647,651 ****
set sn_options(def,localhost) "127.0.0.1"
! set sn_options(sys,builtin-highlighting) {c++ java tcl chill}
set sn_options(sys,language-with-xref) {c++ java tcl fortran chill}
--- 647,651 ----
set sn_options(def,localhost) "127.0.0.1"
! set sn_options(sys,builtin-highlighting) {c++ java tcl chill python}
set sn_options(sys,language-with-xref) {c++ java tcl fortran chill}
diff -c2rN SN451-p0005/snavigator/hyper/Makefile.am SN451/snavigator/hyper/Makefile.am
*** SN451-p0005/snavigator/hyper/Makefile.am Sat Feb 12 00:50:31 2000
--- SN451/snavigator/hyper/Makefile.am Tue Aug 1 19:15:04 2000
***************
*** 55,59 ****
hyper_SOURCES = compare.h compare.c dbsym.c exint.c \
recudir.c services.c tclsql.c tclxlist.c tcl_high.c c_high.c ch_high.c \
! j_high.c highlight.c tclfileutils.c
hyper_LDFLAGS = $(WIN32LDAPP)
--- 55,59 ----
hyper_SOURCES = compare.h compare.c dbsym.c exint.c \
recudir.c services.c tclsql.c tclxlist.c tcl_high.c c_high.c ch_high.c \
! j_high.c py_high.c highlight.c tclfileutils.c
hyper_LDFLAGS = $(WIN32LDAPP)
***************
*** 87,90 ****
--- 87,93 ----
j_high.c: j_high.l
$(LEX) -t > $@ $(LFLAGS) -Pjava_highlight_ $<
+
+ py_high.c: py_high.l
+ $(LEX) -t > $@ $(LFLAGS) -Ppy_highlight_ $<
c_high.c: c_high.l
diff -c2rN SN451-p0005/snavigator/hyper/Makefile.in SN451/snavigator/hyper/Makefile.in
*** SN451-p0005/snavigator/hyper/Makefile.in Tue Aug 1 17:01:54 2000
--- SN451/snavigator/hyper/Makefile.in Wed Aug 2 19:00:51 2000
***************
*** 226,230 ****
hyper_SOURCES = compare.h compare.c dbsym.c exint.c \
recudir.c services.c tclsql.c tclxlist.c tcl_high.c c_high.c ch_high.c \
! j_high.c highlight.c tclfileutils.c
--- 226,230 ----
hyper_SOURCES = compare.h compare.c dbsym.c exint.c \
recudir.c services.c tclsql.c tclxlist.c tcl_high.c c_high.c ch_high.c \
! j_high.c py_high.c highlight.c tclfileutils.c
***************
*** 260,264 ****
recudir.$(OBJEXT) services.$(OBJEXT) tclsql.$(OBJEXT) \
tclxlist.$(OBJEXT) tcl_high.$(OBJEXT) c_high.$(OBJEXT) \
! ch_high.$(OBJEXT) j_high.$(OBJEXT) highlight.$(OBJEXT) \
tclfileutils.$(OBJEXT)
CFLAGS = @CFLAGS@
--- 260,264 ----
recudir.$(OBJEXT) services.$(OBJEXT) tclsql.$(OBJEXT) \
tclxlist.$(OBJEXT) tcl_high.$(OBJEXT) c_high.$(OBJEXT) \
! ch_high.$(OBJEXT) j_high.$(OBJEXT) py_high.$(OBJEXT) highlight.$(OBJEXT) \
tclfileutils.$(OBJEXT)
CFLAGS = @CFLAGS@
***************
*** 484,487 ****
--- 484,490 ----
j_high.c: j_high.l
$(LEX) -t > $@ $(LFLAGS) -Pjava_highlight_ $<
+
+ py_high.c: py_high.l
+ $(LEX) -t > $@ $(LFLAGS) -Ppy_highlight_ $<
c_high.c: c_high.l
diff -c2rN SN451-p0005/snavigator/hyper/highlight.c SN451/snavigator/hyper/highlight.c
*** SN451-p0005/snavigator/hyper/highlight.c Sat Feb 12 00:50:43 2000
--- SN451/snavigator/hyper/highlight.c Tue Aug 1 19:13:20 2000
***************
*** 41,48 ****
--- 41,50 ----
int java_highlight_lex();
int ch_highlight_lex();
+ int py_highlight_lex();
void tcl_highlight_init_func(int maxs, int lineno, int charno, void (**func)(), void *idx1, void *idx2);
void c_highlight_init_func(int maxs, int lineno, int charno, void (**func)(), void *idx1, void *idx2);
void ch_highlight_init_func(int maxs, int lineno, int charno, void (**func)(), void *idx1, void *idx2);
void java_highlight_init_func(int maxs, int lineno, int charno, void (**func)(), void *idx1, void *idx2);
+ void py_highlight_init_func(int maxs, int lineno, int charno, void (**func)(), void *idx1, void *idx2);
static char *high_tag_names[] = {
***************
*** 277,280 ****
--- 279,287 ----
high_func = ch_highlight_lex;
high_init_func = ch_highlight_init_func;
+ }
+ else if (strcmp(language, "python") == 0)
+ {
+ high_func = py_highlight_lex;
+ high_init_func = py_highlight_init_func;
}
diff -c2rN SN451-p0005/snavigator/hyper/py_high.l SN451/snavigator/hyper/py_high.l
*** SN451-p0005/snavigator/hyper/py_high.l Thu Jan 1 01:00:00 1970
--- SN451/snavigator/hyper/py_high.l Tue Aug 1 19:21:02 2000
***************
*** 0 ****
--- 1,276 ----
+ /* -*- c -*- */
+ /*
+
+ Copyright (c) 2000, Red Hat, Inc.
+
+ This file is part of Source-Navigator.
+
+ Source-Navigator 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.
+
+ Source-Navigator 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 Source-Navigator; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA.
+
+ */
+
+ /*
+ * py_high.l
+ *
+ * Written by Thomas Heller
+ *
+ * Description:
+ * A lex specification for a scanner to parse python files
+ * and highlight the source code.
+ */
+
+ %{
+ #include
+
+ #include "highlight.h"
+
+ static long lineNumber = 1;
+ static int charNumber = 0;
+ static int lex_buf_size = YY_BUF_SIZE;
+ static void *user_data1;
+ static void *user_data2;
+
+ static void drop_until();
+ static void parse_triple();
+
+ #undef yywrap
+ #define YY_SKIP_YYWRAP 1
+ static int yywrap();
+ %}
+
+ %%
+
+ "#".*$ {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+ paf_high_pos.end_lineno = lineNumber + 1;
+ paf_high_pos.end_charno = 0;
+
+ charNumber += yyleng;
+
+ return PAF_HIGH_COMMENT;
+ }
+
+ \' {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+
+ charNumber += yyleng;
+
+ drop_until((int)'\'',(int)'\\');
+
+ paf_high_pos.end_lineno = lineNumber;
+ paf_high_pos.end_charno = charNumber;
+
+ return PAF_HIGH_STRING;
+ }
+
+ \"\"\" {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+ charNumber += yyleng;
+
+ parse_triple((int)'"');
+
+ paf_high_pos.end_lineno = lineNumber;
+ paf_high_pos.end_charno = charNumber;
+
+ return PAF_HIGH_STRING;
+ }
+
+ \'\'\' {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+ charNumber += yyleng;
+
+ parse_triple((int)'\'');
+
+ paf_high_pos.end_lineno = lineNumber;
+ paf_high_pos.end_charno = charNumber;
+
+ return PAF_HIGH_STRING;
+ }
+
+ \" {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+
+ charNumber += yyleng;
+
+ drop_until((int)'"',(int)'\\');
+
+ paf_high_pos.end_lineno = lineNumber;
+ paf_high_pos.end_charno = charNumber;
+
+ return PAF_HIGH_STRING;
+ }
+
+ and |
+ assert |
+ break |
+ class |
+ continue |
+ def |
+ del |
+ elif |
+ else |
+ except |
+ exec |
+ finally |
+ for |
+ from |
+ global |
+ if |
+ import |
+ in |
+ is |
+ lambda |
+ not |
+ or |
+ pass |
+ print |
+ raise |
+ return |
+ try |
+ while {
+ paf_high_pos.beg_lineno = lineNumber;
+ paf_high_pos.beg_charno = charNumber;
+ paf_high_pos.end_lineno = lineNumber;
+ paf_high_pos.end_charno = charNumber + yyleng;
+
+ charNumber += yyleng;
+
+ return PAF_HIGH_KEYWORD;
+ }
+
+ \n+ {
+ lineNumber += yyleng;
+ charNumber = 0;
+ }
+
+ \r+ {
+ }
+
+ [a-zA-Z0-9_]+ |
+ [ \t]+ |
+ . {
+ charNumber += yyleng;
+ }
+ %%
+
+ static void
+ parse_triple(int term)
+ {
+ int c;
+ int count;
+ while (1) {
+ c = input();
+ charNumber++;
+ if (c == term) {
+ ++count;
+ if (count == 3)
+ return;
+ } else {
+ count = 0;
+ switch (c) {
+ case '\\':
+ c = input();
+ if (c <= 0)
+ return;
+ if (c != '\n') {
+ charNumber++;
+ c = -1;
+ } else {
+ ++lineNumber;
+ }
+ break;
+
+ case '\n':
+ lineNumber++;
+ charNumber = -1;
+ break;
+
+ case '\r':
+ charNumber--;
+ break;
+
+ case EOF:
+ return;
+ }
+ }
+ }
+ }
+
+ static void
+ drop_until(int term, int esc)
+ {
+ int c, l = 0;
+
+ for (l = -1; ((c = (int)input()) != term || l == esc); l = c, charNumber++)
+ {
+ switch (c)
+ {
+ case '\\':
+ c = input();
+ if (c <= 0)
+ return;
+ if (c != '\n') {
+ charNumber++;
+ c = -1;
+ } else {
+ ++lineNumber;
+ }
+ break;
+
+ case '\n':
+ lineNumber++;
+ charNumber = -1;
+ return;
+
+ case '\r':
+ charNumber--;
+ break;
+
+ case EOF:
+ return;
+ }
+ }
+ charNumber++;
+ }
+
+ static int
+ yywrap()
+ {
+ return 1;
+ }
+
+ static void
+ flush_lex_scanner()
+ {
+ YY_FLUSH_BUFFER;
+ }
+
+ void
+ py_highlight_init_func(int maxs, int lineno, int charno, void *(*func), void *u_d1, void *u_d2)
+ {
+ lex_buf_size = maxs;
+ lineNumber = lineno;
+ charNumber = charno;
+ *func = flush_lex_scanner;
+ user_data1 = u_d1;
+ user_data2 = u_d2;
+ }
+
diff -c2rN SN451-p0005/snavigator/parsers/Makefile.am SN451/snavigator/parsers/Makefile.am
*** SN451-p0005/snavigator/parsers/Makefile.am Sat Feb 12 00:51:29 2000
--- SN451/snavigator/parsers/Makefile.am Tue Aug 1 19:23:42 2000
***************
*** 23,26 ****
## Order is important here.
! SUBDIRS = common libjcreuse toolbox assembly cobol cpp fortran java @JAVA_PARSER@ @SENDMAIL_PARSER@ tcl
--- 23,26 ----
## Order is important here.
! SUBDIRS = common libjcreuse toolbox assembly cobol cpp fortran java @JAVA_PARSER@ @SENDMAIL_PARSER@ tcl python
diff -c2rN SN451-p0005/snavigator/parsers/Makefile.in SN451/snavigator/parsers/Makefile.in
*** SN451-p0005/snavigator/parsers/Makefile.in Wed Apr 12 19:53:24 2000
--- SN451/snavigator/parsers/Makefile.in Tue Aug 1 19:24:47 2000
***************
*** 203,207 ****
AUTOMAKE_OPTIONS = cygnus
! SUBDIRS = common libjcreuse toolbox assembly cobol cpp fortran java @JAVA_PARSER@ @SENDMAIL_PARSER@ tcl
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
--- 203,207 ----
AUTOMAKE_OPTIONS = cygnus
! SUBDIRS = common libjcreuse toolbox assembly cobol cpp fortran java @JAVA_PARSER@ @SENDMAIL_PARSER@ tcl python
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
diff -c2rN SN451-p0005/snavigator/parsers/python/Makefile.am SN451/snavigator/parsers/python/Makefile.am
*** SN451-p0005/snavigator/parsers/python/Makefile.am Thu Jan 1 01:00:00 1970
--- SN451/snavigator/parsers/python/Makefile.am Wed Aug 2 17:44:14 2000
***************
*** 0 ****
--- 1,43 ----
+ # Copyright (c) 2000, Red Hat, Inc.
+ #
+ # This file is part of Source-Navigator.
+ #
+ # Source-Navigator 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.
+ #
+ # Source-Navigator 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 Source-Navigator; see the file COPYING. If not, write to
+ # the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
+ #
+ AUTOMAKE_OPTIONS = cygnus
+
+ ## Process this file with automake to create .in.
+
+ toolbox = $(top_builddir)/parsers/toolbox
+ common = $(top_builddir)/parsers/common
+
+ bin_PROGRAMS = pybrowser
+
+ INCLUDES = $(WINFLAGS) -I$(top_srcdir)/hyper \
+ -I$(top_srcdir)/parsers/toolbox \
+ -I$(top_srcdir)/parsers/common $(TCLHDIR)
+
+ pybrowser_LDADD = $(toolbox)/libsnptools.a $(top_builddir)/db/libdbutils.a \
+ $(common)/libcommon.a $(DB_LIBDIR)/libdb.a @LEXLIB@ \
+ $(top_builddir)/misc/libutils/libutils.a \
+ $(TCL_BUILD_LIB_SPEC) $(TCL_LIBS)
+
+ pybrowser_SOURCES = pybrowser.l
+
+ pybrowser_DEPENDENCIES = $(top_builddir)/db/libdbutils.a $(DB_LIBDIR)/libdb.a \
+ $(toolbox)/libsnptools.a $(common)/libcommon.a \
+ $(top_builddir)/misc/libutils/libutils.a
+
diff -c2rN SN451-p0005/snavigator/parsers/python/Makefile.in SN451/snavigator/parsers/python/Makefile.in
*** SN451-p0005/snavigator/parsers/python/Makefile.in Thu Jan 1 01:00:00 1970
--- SN451/snavigator/parsers/python/Makefile.in Wed Aug 2 17:44:17 2000
***************
*** 0 ****
--- 1,435 ----
+ # Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+
+ # Copyright (c) 2000, Red Hat, Inc.
+ #
+ # This file is part of Source-Navigator.
+ #
+ # Source-Navigator 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.
+ #
+ # Source-Navigator 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 Source-Navigator; see the file COPYING. If not, write to
+ # the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ # MA 02111-1307, USA.
+ #
+
+
+ SHELL = @SHELL@
+
+ srcdir = @srcdir@
+ top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+
+ bindir = @bindir@
+ sbindir = @sbindir@
+ libexecdir = @libexecdir@
+ datadir = @datadir@
+ sysconfdir = @sysconfdir@
+ sharedstatedir = @sharedstatedir@
+ localstatedir = @localstatedir@
+ libdir = @libdir@
+ infodir = @infodir@
+ mandir = @mandir@
+ includedir = @includedir@
+ oldincludedir = /usr/include
+
+ DESTDIR =
+
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+
+ top_builddir = ../..
+
+ ACLOCAL = @ACLOCAL@
+ AUTOCONF = @AUTOCONF@
+ AUTOMAKE = @AUTOMAKE@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ ASM_DEMO = @ASM_DEMO@
+ AWK = @AWK@
+ BFDHDIR = @BFDHDIR@
+ BFDLIB = @BFDLIB@
+ BUG_ADDRESS = @BUG_ADDRESS@
+ CC = @CC@
+ CC_FOR_BUILD = @CC_FOR_BUILD@
+ COB_DEMO = @COB_DEMO@
+ CONFIG_H = @CONFIG_H@
+ CXX = @CXX@
+ CXXCPP = @CXXCPP@
+ C_DEMO = @C_DEMO@
+ DB_INCDIR = @DB_INCDIR@
+ DB_LIBDIR = @DB_LIBDIR@
+ DEJAGNUHDIR = @DEJAGNUHDIR@
+ DEJAGNULIB = @DEJAGNULIB@
+ DEVOHDIR = @DEVOHDIR@
+ ENDIAN = @ENDIAN@
+ EXEEXT = @EXEEXT@
+ FOR_DEMO = @FOR_DEMO@
+ GETTING_STARTED_DIR = @GETTING_STARTED_DIR@
+ GETTING_STARTED_INDEX = @GETTING_STARTED_INDEX@
+ GETTING_STARTED_NAME = @GETTING_STARTED_NAME@
+ GUILIB = @GUILIB@
+ HALDIR = @HALDIR@
+ HAVE_DEVO_SIM = @HAVE_DEVO_SIM@
+ HYPER_CFLAGS = @HYPER_CFLAGS@
+ HYPER_CONSOLE = @HYPER_CONSOLE@
+ HYPER_MAIN = @HYPER_MAIN@
+ IDEHDIR = @IDEHDIR@
+ IDELIB = @IDELIB@
+ IDETCLLIB = @IDETCLLIB@
+ ILUHDIR = @ILUHDIR@
+ ILULIB = @ILULIB@
+ ILUTOP = @ILUTOP@
+ INTLHDIR = @INTLHDIR@
+ INTLLIB = @INTLLIB@
+ ITCLHDIR = @ITCLHDIR@
+ ITCLLIB = @ITCLLIB@
+ ITCLMKIDX = @ITCLMKIDX@
+ ITCLSH = @ITCLSH@
+ ITCL_MKINDEX_DIR = @ITCL_MKINDEX_DIR@
+ ITCL_SH = @ITCL_SH@
+ JAVAEXE = @JAVAEXE@
+ JAVA_PARSER = @JAVA_PARSER@
+ JAV_DEMO = @JAV_DEMO@
+ KERNELHDIR = @KERNELHDIR@
+ KERNELLIB = @KERNELLIB@
+ LEX = @LEX@
+ LIBERTY = @LIBERTY@
+ LIBGCC = @LIBGCC@
+ LIBGUIHDIR = @LIBGUIHDIR@
+ LIBGUILIB = @LIBGUILIB@
+ LIBIBERTY = @LIBIBERTY@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MONOP_DEMO = @MONOP_DEMO@
+ OBJEXT = @OBJEXT@
+ OLDTARFLAG = @OLDTARFLAG@
+ OPCODESLIB = @OPCODESLIB@
+ PACKAGE = @PACKAGE@
+ PRODUCT_NAME = @PRODUCT_NAME@
+ PROGRAMMERS_REFERENCE_DIR = @PROGRAMMERS_REFERENCE_DIR@
+ PROGRAMMERS_REFERENCE_INDEX = @PROGRAMMERS_REFERENCE_INDEX@
+ PROGRAMMERS_REFERENCE_NAME = @PROGRAMMERS_REFERENCE_NAME@
+ RANLIB = @RANLIB@
+ RUNTESTDIR = @RUNTESTDIR@
+ SDK_DIR = @SDK_DIR@
+ SENDMAIL_PARSER = @SENDMAIL_PARSER@
+ SIMHDIR = @SIMHDIR@
+ SIMLIB = @SIMLIB@
+ SN_BOOKS = @SN_BOOKS@
+ SN_DOCSET = @SN_DOCSET@
+ SN_GUI_DIR = @SN_GUI_DIR@
+ SN_LAUNCH_SHELL = @SN_LAUNCH_SHELL@
+ SN_PLATFORM_DIR = @SN_PLATFORM_DIR@
+ SN_SDK_EXEC_PREFIX = @SN_SDK_EXEC_PREFIX@
+ SOCKLIB = @SOCKLIB@
+ SPLASHFILE = @SPLASHFILE@
+ SUITE_NAME = @SUITE_NAME@
+ TAR = @TAR@
+ TCLCONFIG = @TCLCONFIG@
+ TCLHDIR = @TCLHDIR@
+ TCL_BUILD_LIB_SPEC = @TCL_BUILD_LIB_SPEC@
+ TCL_DEFS = @TCL_DEFS@
+ TCL_LD_FLAGS = @TCL_LD_FLAGS@
+ TCL_LD_SEARCH_FLAGS = @TCL_LD_SEARCH_FLAGS@
+ TCL_LIBRARY = @TCL_LIBRARY@
+ TCL_LIBS = @TCL_LIBS@
+ TCL_LIB_FILE = @TCL_LIB_FILE@
+ TCL_LIB_FULL_PATH = @TCL_LIB_FULL_PATH@
+ TCL_LIB_SPEC = @TCL_LIB_SPEC@
+ TCL_RANLIB = @TCL_RANLIB@
+ TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
+ TCL_SHLIB_LD = @TCL_SHLIB_LD@
+ TIXHDIR = @TIXHDIR@
+ TIXLIB = @TIXLIB@
+ TIX_BUILD_LIB_SPEC = @TIX_BUILD_LIB_SPEC@
+ TIX_VERSION = @TIX_VERSION@
+ TKCONFIG = @TKCONFIG@
+ TKHDIR = @TKHDIR@
+ TK_BUILD_INCLUDES = @TK_BUILD_INCLUDES@
+ TK_BUILD_LIB_SPEC = @TK_BUILD_LIB_SPEC@
+ TK_DEFS = @TK_DEFS@
+ TK_LIBS = @TK_LIBS@
+ TK_LIB_SPEC = @TK_LIB_SPEC@
+ TK_VERSION = @TK_VERSION@
+ TK_XINCLUDES = @TK_XINCLUDES@
+ TK_XLIBSW = @TK_XLIBSW@
+ TMGRHDIR = @TMGRHDIR@
+ TMGRLIB = @TMGRLIB@
+ USING_GNUPRO_DIR = @USING_GNUPRO_DIR@
+ USING_GNUPRO_INDEX = @USING_GNUPRO_INDEX@
+ USING_GNUPRO_NAME = @USING_GNUPRO_NAME@
+ VERSION = @VERSION@
+ WIN32LDAPP = @WIN32LDAPP@
+ WIN32LIBS = @WIN32LIBS@
+ WINDRES = @WINDRES@
+ WINFLAGS = @WINFLAGS@
+ X11ICON = @X11ICON@
+ YACC = @YACC@
+ ac_cv_c_itclsh = @ac_cv_c_itclsh@
+
+ AUTOMAKE_OPTIONS = cygnus
+
+ toolbox = $(top_builddir)/parsers/toolbox
+ common = $(top_builddir)/parsers/common
+
+ bin_PROGRAMS = pybrowser
+
+ INCLUDES = $(WINFLAGS) -I$(top_srcdir)/hyper -I$(top_srcdir)/parsers/toolbox -I$(top_srcdir)/parsers/common $(TCLHDIR)
+
+
+ pybrowser_LDADD = $(toolbox)/libsnptools.a $(top_builddir)/db/libdbutils.a $(common)/libcommon.a $(DB_LIBDIR)/libdb.a @LEXLIB@ $(top_builddir)/misc/libutils/libutils.a $(TCL_BUILD_LIB_SPEC) $(TCL_LIBS)
+
+
+ pybrowser_SOURCES = pybrowser.l
+
+ pybrowser_DEPENDENCIES = $(top_builddir)/db/libdbutils.a $(DB_LIBDIR)/libdb.a $(toolbox)/libsnptools.a $(common)/libcommon.a $(top_builddir)/misc/libutils/libutils.a
+
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../../config.h
+ CONFIG_CLEAN_FILES =
+ bin_PROGRAMS = pybrowser$(EXEEXT)
+ PROGRAMS = $(bin_PROGRAMS)
+
+
+ DEFS = @DEFS@ -I. -I$(srcdir) -I../..
+ CPPFLAGS = @CPPFLAGS@
+ LDFLAGS = @LDFLAGS@
+ LIBS = @LIBS@
+ pybrowser_OBJECTS = pybrowser.$(OBJEXT)
+ pybrowser_LDFLAGS =
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+ LEXLIB = @LEXLIB@
+ CFLAGS = @CFLAGS@
+ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+ DIST_COMMON = Makefile.am Makefile.in pybrowser.c
+
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+ GZIP_ENV = --best
+ SOURCES = $(pybrowser_SOURCES)
+ OBJECTS = $(pybrowser_OBJECTS)
+
+ all: all-redirect
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .o .obj .s
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && $(AUTOMAKE) --cygnus parsers/python/Makefile
+
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+ mostlyclean-binPROGRAMS:
+
+ clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+ distclean-binPROGRAMS:
+
+ maintainer-clean-binPROGRAMS:
+
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+ uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ list='$(bin_PROGRAMS)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ done
+
+ .c.o:
+ $(COMPILE) -c $<
+
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+ $(COMPILE) -c `cygpath -w $<`
+
+ .s.o:
+ $(COMPILE) -c $<
+
+ .S.o:
+ $(COMPILE) -c $<
+
+ mostlyclean-compile:
+ -rm -f *.o core *.core
+ -rm -f *.$(OBJEXT)
+
+ clean-compile:
+
+ distclean-compile:
+ -rm -f *.tab.c
+
+ maintainer-clean-compile:
+
+ pybrowser$(EXEEXT): $(pybrowser_OBJECTS) $(pybrowser_DEPENDENCIES)
+ @rm -f pybrowser$(EXEEXT)
+ $(LINK) $(pybrowser_LDFLAGS) $(pybrowser_OBJECTS) $(pybrowser_LDADD) $(LIBS)
+ .l.c:
+ $(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
+
+ tags: TAGS
+
+ ID: $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ here=`pwd` && cd $(srcdir) \
+ && mkid -f$$here/ID $$unique $(LISP)
+
+ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS)'; \
+ unique=`for i in $$list; do echo $$i; done | \
+ awk ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
+
+ mostlyclean-tags:
+
+ clean-tags:
+
+ distclean-tags:
+ -rm -f TAGS ID
+
+ maintainer-clean-tags:
+
+ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+ subdir = parsers/python
+
+ distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $$d/$$file $(distdir)/$$file || :; \
+ fi; \
+ done
+ info-am:
+ info: info-am
+ dvi-am:
+ dvi: dvi-am
+ check-am:
+ check: check-am
+ installcheck-am:
+ installcheck: installcheck-am
+ install-info-am:
+ install-info: install-info-am
+ install-exec-am: install-binPROGRAMS
+ install-exec: install-exec-am
+
+ install-data-am:
+ install-data: install-data-am
+
+ install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ install: install-am
+ uninstall-am: uninstall-binPROGRAMS
+ uninstall: uninstall-am
+ all-am: Makefile $(PROGRAMS)
+ all-redirect: all-am
+ install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+
+ mostlyclean-generic:
+
+ clean-generic:
+
+ distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+
+ maintainer-clean-generic:
+ -test -z "pybrowserl" || rm -f pybrowserl
+ mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
+ mostlyclean-tags mostlyclean-generic
+
+ mostlyclean: mostlyclean-am
+
+ clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \
+ mostlyclean-am
+
+ clean: clean-am
+
+ distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
+ distclean-generic clean-am
+
+ distclean: distclean-am
+
+ maintainer-clean-am: maintainer-clean-binPROGRAMS \
+ maintainer-clean-compile maintainer-clean-tags \
+ maintainer-clean-generic distclean-am
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+ maintainer-clean: maintainer-clean-am
+
+ .PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+ maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile tags mostlyclean-tags distclean-tags \
+ clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+ check-am installcheck-am installcheck install-info-am install-info \
+ install-exec-am install-exec install-data-am install-data install-am \
+ install uninstall-am uninstall all-redirect all-am all installdirs \
+ mostlyclean-generic distclean-generic clean-generic \
+ maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -c2rN SN451-p0005/snavigator/parsers/python/README SN451/snavigator/parsers/python/README
*** SN451-p0005/snavigator/parsers/python/README Thu Jan 1 01:00:00 1970
--- SN451/snavigator/parsers/python/README Wed Aug 2 20:42:50 2000
***************
*** 0 ****
--- 1,14 ----
+ This is a parser for python source code.
+
+ Current limitations:
+
+ * Continuation lines (ending in a backslash) are not always
+ handled correctly.
+
+ * This parser has nearly the same limitations as python's
+ class browser module pyclbr.py (which also served as implementation
+ guideline). Triple quoted strings are, however, handled correctly.
+
+ ---
+ Thomas Heller
+ thomas.heller@ion-tof.com
diff -c2rN SN451-p0005/snavigator/parsers/python/pybrowser.l SN451/snavigator/parsers/python/pybrowser.l
*** SN451-p0005/snavigator/parsers/python/pybrowser.l Thu Jan 1 01:00:00 1970
--- SN451/snavigator/parsers/python/pybrowser.l Wed Aug 2 15:17:03 2000
***************
*** 0 ****
--- 1,334 ----
+ /* -*- c -*- */
+ /*
+
+ Copyright (c) 2000, Red Hat, Inc.
+
+ This file is part of Source-Navigator.
+
+ Source-Navigator 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.
+
+ Source-Navigator 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 Source-Navigator; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA.
+
+ */
+
+ %{
+ /*
+ * pybrowser.l
+ *
+ * Written by Thomas Heller
+ *
+ * Description:
+ * A lex specification for a scanner to parse python source code files
+ * and store relevant information into the Source-Navigator project database.
+ */
+
+ #include
+ #include "lexinput.h"
+ #include "tcl.h"
+ #include "snptools.h"
+
+ static char group[] = "python";
+
+ static char *mystrdup(char *);
+ static void var_or_const(int);
+
+ static struct stack *scope_stack;
+
+ static void push(int, int, char *);
+ static void pop(int);
+ static char *top(int *);
+ static int calc_indent (char*, char *);
+ static void baseclasses (char *, char *);
+ static void parse_triple(int);
+
+ /* XXX Is this correct? */
+ #undef YY_INPUT
+ #define YY_INPUT(buf,r,ms) (r = sn_encoded_input(buf, ms))
+
+ int
+ yywrap()
+ {
+ return(1);
+ }
+
+ %}
+
+ %%
+
+ \"\"\" {
+ sn_advance_column (3);
+ parse_triple((int)'"');
+ }
+
+ \'\'\' {
+ sn_advance_column (3);
+ parse_triple((int)'\'');
+ }
+
+ ^[ \t]*def[ \t]+[a-zA-Z_][a-zA-Z_0-9]*[ \t]*\( {
+ int ofs;
+ char *p;
+ int indent;
+ char *classname;
+ int code;
+ int context;
+ /* point just before the '(', then go backwards to find and mark
+ the end of the name */
+ p = yytext + yyleng - 1;
+ while ((p[-1] == ' ') || (p[-1] == '\t'))
+ --p;
+ *p = '\0';
+ /* now go backwards to find the beginning */
+ p = yytext + yyleng-1;
+ while ((p > yytext) && (p[-1] != ' ') && (p[-1] != '\t'))
+ --p;
+ ofs = p - yytext;
+
+ indent = calc_indent (yytext, p);
+ pop(indent);
+ classname = top(&context);
+ if (classname) {
+ switch (context) {
+ case SN_CLASS_DEF:
+ code = SN_MBR_FUNC_DEF;
+ break;
+ default:
+ code = SN_FUNC_DEF;
+ classname = NULL;
+ break;
+ }
+ } else
+ code = SN_FUNC_DEF;
+
+ push(indent, code, p);
+
+ sn_insert_symbol(code, classname, p, sn_current_file(),
+ sn_line(), sn_column()+ofs, sn_line(),
+ sn_column()+ofs + strlen(p),
+ 0, NULL, NULL, NULL, NULL,
+ sn_line(), sn_column()+ofs, sn_line(),
+ sn_column()+ofs + strlen(p));
+ }
+
+ ^[ \t]*class[ \t]+[a-zA-Z_][a-zA-Z_0-9]*[ \t]*(\([^)]*\))?[ \t]*: {
+ int ofs;
+ char *p, *super;
+ int indent;
+ char *end;
+ yytext[yyleng] = '\0';
+
+ p = yytext;
+ while (isspace (*p))
+ ++p;
+ indent = calc_indent (yytext, p);
+
+ p += strlen ("class");
+ while (isspace (*p))
+ ++p;
+ ofs = p - yytext;
+ end = p;
+ while (*end && (isalnum (*end) || (*end == '_')))
+ ++end;
+ *end = '\0';
+
+ pop(indent);
+ push(indent, SN_CLASS_DEF, p);
+ sn_insert_symbol(SN_CLASS_DEF, NULL, p, sn_current_file(),
+ sn_line(), sn_column()+ofs, sn_line(),
+ sn_column()+ofs + strlen(p),
+ 0, NULL, NULL, NULL, NULL,
+ sn_line(), sn_column()+ofs, sn_line(),
+ sn_column()+ofs + strlen(p));
+ ++end;
+ super = end;
+ while ((end < yytext+yyleng) && *end) {
+ if (*end == '\n') {
+ sn_advance_line();
+ sn_reset_column();
+ }
+ ++end;
+ }
+ baseclasses (p, super);
+ }
+
+ ^[A-Z_][A-Z0-9_]*[ \t]*= { var_or_const (SN_CONS_DEF); }
+
+ ^[a-zA-Z_][a-zA-Z0-9_]*[ \t]*= { var_or_const (SN_GLOB_VAR_DEF); }
+
+ \n {
+ sn_advance_line();
+ sn_reset_column();
+ }
+
+ . { sn_advance_column(yyleng); }
+
+ %%
+ struct stack {
+ int indent;
+ int code;
+ char *name;
+ struct stack *prev;
+ };
+
+ static struct stack *scope_stack = NULL;
+
+ static int calc_indent(char *start, char *stop)
+ {
+ int indent = 0;
+ char *cp = start;
+ while (cp < stop) {
+ switch (*cp++) {
+ case ' ':
+ ++indent;
+ break;
+ case '\t':
+ indent = (indent / 8) * 8 + 8;
+ break;
+ default:
+ return indent;
+ }
+ }
+ return indent;
+ }
+
+ static char *top(int *code)
+ {
+ if (scope_stack) {
+ *code = scope_stack->code;
+ return scope_stack->name;
+ }
+ return NULL;
+ }
+
+ static void push(int indent, int code, char *name)
+ {
+ struct stack *node;
+
+ node = (struct stack *)malloc(sizeof (struct stack));
+ node->indent = indent;
+ node->code = code;
+ node->name = mystrdup (name);
+ node->prev = scope_stack;
+ scope_stack = node;
+ }
+
+ static void pop(int indent)
+ {
+ while (scope_stack && (scope_stack->indent >= indent)) {
+ scope_stack = scope_stack->prev;
+ }
+ }
+
+ static void baseclasses (char *classname, char *rest)
+ {
+ /* We enter here with something like " ( Tester ):" */
+ char *cp = rest;
+ char *base;
+
+ while (base = strtok (cp, "():, \t\r\n")) {
+ if (strchr (base, '.'))
+ base = strrchr (base, '.') + 1;
+ cp = NULL;
+ /* I don't really know why we need a filename here, the
+ base class may be defined in a totally different file */
+ sn_insert_symbol(SN_CLASS_INHERIT, classname, base,
+ sn_current_file(),
+ sn_line(), sn_column(), sn_line(),
+ sn_column() + strlen(base),
+ 0, NULL, NULL, NULL, NULL,
+ sn_line(), sn_column(), sn_line(),
+ sn_column() + strlen(base));
+ }
+ }
+
+ static void var_or_const (int code)
+ {
+ char *p;
+ /* point just before the '=', then go backwards to find and mark
+ the end of identifier */
+ p = yytext + yyleng - 1;
+ while ((p > yytext) && (p[-1] == ' ') || (p[-1] == '\t'))
+ --p;
+ *p = '\0';
+ sn_insert_symbol(code, NULL, yytext, sn_current_file(),
+ sn_line(), sn_column(), sn_line(),
+ sn_column() + strlen(yytext),
+ 0, NULL, NULL, NULL, NULL,
+ sn_line(), sn_column(), sn_line(),
+ sn_column() + strlen(yytext));
+ }
+
+ static void parse_triple(int term)
+ {
+ int c;
+ int count;
+ while (1) {
+ c = input();
+ sn_advance_column (1);
+ if (c == term) {
+ ++count;
+ if (count == 3)
+ return;
+ } else {
+ count = 0;
+ switch (c) {
+ case '\\':
+ c = input();
+ if (c <= 0)
+ return;
+ if (c != '\n') {
+ sn_advance_column (1);
+ c = -1;
+ } else {
+ sn_advance_line ();
+ }
+ break;
+
+ case '\n':
+ sn_advance_line ();
+ sn_reset_column ();
+ break;
+
+ case '\r':
+ sn_reset_column ();
+ break;
+
+ case EOF:
+ return;
+ }
+ }
+ }
+ }
+
+ static char *mystrdup(char *name)
+ {
+ char *p = malloc(strlen (name) + 1);
+ if (!p)
+ return NULL;
+ strcpy (p, name);
+ return p;
+ }
+
+ void reset()
+ {
+ sn_reset_line();
+ sn_reset_column();
+ sn_reset_encoding();
+ }
+
+ int
+ main(int argc, char *argv[])
+ {
+ return sn_main(argc, argv, group, &yyin, yylex, reset);
+ }
From bje@redhat.com Thu Aug 3 00:34:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 03 Aug 2000 00:34:00 -0000
Subject: Python parser for SN
References: <200008030717.JAA22453@mail.ion-tof.com>
Message-ID:
This patch contains a python parser and syntax highlighting for
python.
Fantastic! Thanks for doing it.
Since I don't have automake on my development system (I use NT), i had
to write Makefile.in's and Makefile.am's by hand.
Note that it's not necessary to run Automake and Autoconf on the system
you're using. If you move your tree to a Unix system with these tools
installed, you can run it there. Autoconf and Automake work fine under
Cygwin, by the way.
Ben
From florent.pillet@opteway.com Thu Aug 3 00:40:00 2000
From: florent.pillet@opteway.com (Florent Pillet)
Date: Thu, 03 Aug 2000 00:40:00 -0000
Subject: SN Parsers
References:
Message-ID: <398921FF.E52C4C59@opteway.com>
Mo DeJong wrote:
>
> Speaking of views, I would like to point you and the SN team to `VCG`,
> a graph layout tool distributed under the GPL (see
> http://www.cs.uni-sb.de/RW/users/sander/html/gsvcg1.html ). I guess
> that the creation of a library from VCG's source for using its layout
> algorithms is hard, but it has a batch mode where it processes a
> textual graph description and then returns the description augmented
> with node positions. Applications in SN are possibly the existing
> include/symbol reference views (which have a certain irregularity in
> their layout behaviour) and the creation of new (printable) views
> showing chosen references and/or dependencies for the entire project.
On the same topic, there is also GV (GraphViz) from ATT, which is a very powerful graph
engine and already comes with TCL interfaces and lots of other stuff. The quality and
versatility of the graphs it can generate is amazing.
Here is the URL: http://www.research.att.com/sw/tools/graphviz/
--
Florent Pillet, Software Architect. e-mail: fpillet@opteway.com
opt[e]way S.A., 2881 route des cretes, BP 308
06906 Sophia Antipolis Cedex, France
Phone: +33 4 92 95 26 13 - Fax: +33 4 92 95 26 03
http://www.opteway.com/
From thomas.heller@ion-tof.com Thu Aug 3 00:46:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Thu, 03 Aug 2000 00:46:00 -0000
Subject: Python parser for SN
References:
Message-ID: <008901bffd1e$e842ee90$4500a8c0@thomasnb>
>
> Since I don't have automake on my development system (I use NT), i had
> to write Makefile.in's and Makefile.am's by hand.
>
> Note that it's not necessary to run Automake and Autoconf on the system
> you're using. If you move your tree to a Unix system with these tools
> installed, you can run it there. Autoconf and Automake work fine under
> Cygwin, by the way.
>
Autoconf requires perl. So I downloaded and installed ActiveState's
ActivePerl,
and tried to install automake-1.4.
But it refused to run.
Do I have to build perl from the source under cygwin?
Thomas
From bje@redhat.com Thu Aug 3 00:48:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 03 Aug 2000 00:48:00 -0000
Subject: Python parser for SN
References: <008901bffd1e$e842ee90$4500a8c0@thomasnb>
Message-ID:
Autoconf requires perl. So I downloaded and installed ActiveState's
ActivePerl,
Autoconf requires m4. It's Automake that requires Perl.
and tried to install automake-1.4. But it refused to run. Do I have to
build perl from the source under cygwin?
Nope. There are plenty of binary distributions of Perl around for Cygwin.
Keep digging. :-)
Ben
From thomas.heller@ion-tof.com Thu Aug 3 01:08:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Thu, 03 Aug 2000 01:08:00 -0000
Subject: Python parser for SN
References:
Message-ID: <00a601bffd22$00e11690$4500a8c0@thomasnb>
> Autoconf requires perl. So I downloaded and installed ActiveState's
> ActivePerl,
>
> Autoconf requires m4. It's Automake that requires Perl.
A typo. I meant Automake.
>
> and tried to install automake-1.4. But it refused to run. Do I have to
> build perl from the source under cygwin?
>
> Nope. There are plenty of binary distributions of Perl around for Cygwin.
> Keep digging. :-)
>
> Ben
Thanks! Did this, and it worked like a charm!
Thomas
From mdejong@cygnus.com Thu Aug 3 02:00:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 02:00:00 -0000
Subject: Python parser for SN
References: <200008030717.JAA22453@mail.ion-tof.com>
Message-ID:
On Thu, 3 Aug 2000, Thomas Heller wrote:
> This patch contains a python parser and syntax highlighting for
> python.
>
> Since I don't have automake on my development system (I use NT),
> i had to write Makefile.in's and Makefile.am's by hand.
>
> Enjoy!
> Thomas Heller
Wow. Looks like we have a winner in the "First Source-Navigator patch"
contest. (sorry ben, your wait patch does not count because you work here)
I am not sure what the prize will be yet. Perhaps a copy of Red Hat 7.0
when it ships? How about a limited edition Source-Navigator shirt?
At the very least we are going to have to put a note about this
up on the website.
Mo DeJong
Red Hat Inc
From mdejong@cygnus.com Thu Aug 3 02:09:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 02:09:00 -0000
Subject: SN Parsers
References: <398921FF.E52C4C59@opteway.com>
Message-ID:
On Thu, 3 Aug 2000, Florent Pillet wrote:
> On the same topic, there is also GV (GraphViz) from ATT, which is a very powerful graph
> engine and already comes with TCL interfaces and lots of other stuff. The quality and
> versatility of the graphs it can generate is amazing.
>
> Here is the URL: http://www.research.att.com/sw/tools/graphviz/
We are definitely going to need to look into GraphViz, that
"spline o-matic" looks too cool for words. Our current
graphing layer leaves a bit to be desired.
thanks for the pointer
Mo DeJong
Red Hat Inc
From thomas.heller@ion-tof.com Thu Aug 3 02:51:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Thu, 03 Aug 2000 02:51:00 -0000
Subject: Python parser for SN
References:
Message-ID: <014101bffd30$50a03f40$4500a8c0@thomasnb>
>
> Wow. Looks like we have a winner in the "First Source-Navigator patch"
> contest. (sorry ben, your wait patch does not count because you work here)
>
> I am not sure what the prize will be yet. Perhaps a copy of Red Hat 7.0
> when it ships? How about a limited edition Source-Navigator shirt?
> At the very least we are going to have to put a note about this
> up on the website.
>
If you need a shipping address for the prizes, just let me know ;-)
Thomas
From dave.banham@tde.alstom.com Thu Aug 3 03:52:00 2000
From: dave.banham@tde.alstom.com (dave.banham@tde.alstom.com)
Date: Thu, 03 Aug 2000 03:52:00 -0000
Subject: SN and C Struct's
Message-ID:
Dear all,
I am about to make some suggestions for some improvements to SN4.5.1, but
thought it best to make my introductions first.
I am a senior software engineer in the UK working for a large engineering
Company. The products that I am involved with have a reasonably large code base
of around 400KLOC, most of which is C with a small amount of assembler. All of
this is embedded with a real time operating system, which is partly why we
haven't yet made the move to C++, and developed on Win NT4 workstations with
Clear Case CM. It is also worth noting that the software is partitioned into a
number of distinct sections, each in its own Clear Case VOB (that is root
folder), which are maintained by distinct groups of engineers and used by
several projects/products.
I have recently taken on an existing project and have the dubious job of
supporting and extending the software. This is where SN comes in. I had
previously purchased the SN99r1 Developer Edition, but found that I could not
use it fully on this project due to its 250KLOC limit. Thankfully the full
enterprise edition has been made Open Source, so I no longer have to go begging
to my manager for some money!
I have found SN to be extremely useful and use it most with the Retriever -
Editor window to locate symbols in the code base. I would also like to use the
XREF and Class views to visualise and navigate the convoluted relationships in
the software's data structures (i.e. C struct's). This is where I find that SN
is, err, deficient.
1. The Hierarchy Browser does not draw graphs of C struct's (or typedef'd
struct's).
2. Class Browser only shows the contents of the specified struct and not of any
embedded or referred (i.e. via a pointer) struct's (i.e. augmented). Moreover,
it will not show typedef'd structures unless a structure tag name is used, e.g.
typedef struct mystruct_tag {int a; int b;} mystruct; only 'mystruct_tag' works
in Class Browser and most typedef struct declarations do not provide a tag name.
3. The Xref Browser only appears to show what symbols are used by a function and
not what functions use it - the 'refers by' option is disabled. It would be very
useful to know what functions use a given symbol.
4. If SN has a complete database of all symbol references, then why is the grep
tool the only way of finding all references to a symbol in the code base? Could
the Retriever tool have an option to display all instances, rather than just the
declaration of the symbol.
I have had a quick look through the SN SDK manual. It is not very obvious where
to even start such customisations, and since I am not a TCL/TK programmer it is
difficult to know where to start. Moreover, it sounds like setting up a MS VC++
5 build of SN is going to be a little tricky. Does any one have any suggestions?
Best Regards
Dave Banham
From florent.pillet@opteway.com Thu Aug 3 05:16:00 2000
From: florent.pillet@opteway.com (Florent Pillet)
Date: Thu, 03 Aug 2000 05:16:00 -0000
Subject: Python parser for SN
References:
Message-ID: <39896283.A360F249@opteway.com>
Mo DeJong wrote:
>
> On Thu, 3 Aug 2000, Thomas Heller wrote:
>
> > This patch contains a python parser and syntax highlighting for
> > python.
> >
> > Since I don't have automake on my development system (I use NT),
> > i had to write Makefile.in's and Makefile.am's by hand.
> >
> > Enjoy!
> > Thomas Heller
>
> Wow. Looks like we have a winner in the "First Source-Navigator patch"
> contest. (sorry ben, your wait patch does not count because you work here)
>
> I am not sure what the prize will be yet. Perhaps a copy of Red Hat 7.0
> when it ships? How about a limited edition Source-Navigator shirt?
> At the very least we are going to have to put a note about this
> up on the website.
>
> Mo DeJong
> Red Hat Inc
Wow wow wow.... The _first_ patch was mine, when I sent the additions to the C++ parser
for bool, const_cast, static_cast and reinterpret_cast. I know that's no big deal but if
there is a contest, I was here first :=))
Cheers,
Florent.
--
Florent Pillet, Software Architect. e-mail: fpillet@opteway.com
opt[e]way S.A., 2881 route des cretes, BP 308
06906 Sophia Antipolis Cedex, France
Phone: +33 4 92 95 26 13 - Fax: +33 4 92 95 26 03
http://www.opteway.com/
From lmcdasi@lmc.ericsson.se Thu Aug 3 05:17:00 2000
From: lmcdasi@lmc.ericsson.se (root)
Date: Thu, 03 Aug 2000 05:17:00 -0000
Subject: snavigator on Linux Sparc64
References:
Message-ID: <39896266.77F21DFE@lmc.ericsson.se>
Mo DeJong wrote:
> On Thu, 3 Aug 2000, Ben Elliston wrote:
>
> > Could you compare your changes to the most recent CVS version of
> > Tcl/Tk in the Ajuba CVS? I think there were some Sparc Linux fixes
> > that have already been applied.
> >
> > Nevertheless, this problem is solely in Tcl. I would be surprised if Ajuba
> > haven't fix it by now--in which case, we could import the patch.
> >
> > Ben
>
> Yes, but it would be nice if we could get someone to test changes
> out to make sure it works before we apply them. We do not have
> a sparc Linux machine here in the SOMA office, so we can't
> really test it.
>
> Mo DeJong
> Red Hat Inc
If you wish, I could try to help you out with the changes.
Also, I have download the tcl8.4a1 version and they already fix this in the tcl
sources !
Dan
From svohra@csi.uottawa.ca Thu Aug 3 07:32:00 2000
From: svohra@csi.uottawa.ca (Sonia Vohra)
Date: Thu, 03 Aug 2000 07:32:00 -0000
Subject: SN Download
Message-ID: <39898269.4E7B@csi.uottawa.ca>
Hi,
I am trying to download Source Navigator from
ftp://sources.redhat.com/pub/sourcenav/releases/
but it asks me for a username and password.
I tried using the username and password for
my redhat account, but it failed.
Can u please help
Thanks in advance.
Sonia
--
Sonia Vohra
Research Associate
Email:svohra@site.uottawa.ca
SITE: School of Information Technology and Engineering
University of Ottawa |W/B: 613 5625800 x6428
Ottawa, Canada, K1N 6N5 |Fax: 613 562-5187
From spolk@redhat.com Thu Aug 3 08:13:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Thu, 03 Aug 2000 08:13:00 -0000
Subject: Python parser for SN
References:
Message-ID: <39898C9A.2950B1F9@redhat.com>
No, the first patch was the c parser extension. But this is also cool.
Mo DeJong wrote:
>
> On Thu, 3 Aug 2000, Thomas Heller wrote:
>
> > This patch contains a python parser and syntax highlighting for
> > python.
> >
> > Since I don't have automake on my development system (I use NT),
> > i had to write Makefile.in's and Makefile.am's by hand.
> >
> > Enjoy!
> > Thomas Heller
>
> Wow. Looks like we have a winner in the "First Source-Navigator patch"
> contest. (sorry ben, your wait patch does not count because you work here)
>
> I am not sure what the prize will be yet. Perhaps a copy of Red Hat 7.0
> when it ships? How about a limited edition Source-Navigator shirt?
> At the very least we are going to have to put a note about this
> up on the website.
>
> Mo DeJong
> Red Hat Inc
From thomas.heller@ion-tof.com Thu Aug 3 09:22:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Thu, 03 Aug 2000 09:22:00 -0000
Subject: Getting started with tcl
Message-ID: <00e401bffd66$eca2b180$4500a8c0@thomasnb>
I'm trying to understand how SN starts 'make'.
Since I'm an absolute beginner to tcl, can
someone please explain the following line
(from share/gui/multimake.tcl, method ExecMake):
set ret [catch {@@set make_fd [@@open "| $make_cmd" r]} msg]
I can decipher most of it, but what do all the @'s mean?
Is this standard tcl? I did not find something like
this in the Ousterhout book...
Thomas Heller
From bruce.stephens@messagingdirect.com Thu Aug 3 09:40:00 2000
From: bruce.stephens@messagingdirect.com (Bruce Stephens)
Date: Thu, 03 Aug 2000 09:40:00 -0000
Subject: Getting started with tcl
References: <00e401bffd66$eca2b180$4500a8c0@thomasnb>
Message-ID:
Thomas Heller writes:
> I'm trying to understand how SN starts 'make'.
> Since I'm an absolute beginner to tcl, can
> someone please explain the following line
> (from share/gui/multimake.tcl, method ExecMake):
>
> set ret [catch {@@set make_fd [@@open "| $make_cmd" r]} msg]
>
> I can decipher most of it, but what do all the @'s mean?
> Is this standard tcl? I did not find something like
> this in the Ousterhout book...
Normally it would mean nothing: @@set would simply refer to a command
called "@@set". However, the ChangeLog in itcl suggests that things
have been changed so that @@ means the same as ::.
So try thinking of it in those terms. Ousterhout's book is
unfortunately too old to cover namespaces; however, the namespace(n)
manpage describes it. Anyway, namespaces work sufficiently obviously
that they shouldn't be surprising.
I don't know why they'd have changed things in this way.
--
Bruce Stephens Bruce.Stephens@MessagingDirect.com
MessagingDirect(UK) Ltd
From spolk@redhat.com Thu Aug 3 10:19:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Thu, 03 Aug 2000 10:19:00 -0000
Subject: Getting started with tcl
References: <"Thu,> <3> <2000> <18:21:47> <+0200> <00e401bffd66$eca2b180$4500a8c0@thomasnb>
Message-ID: <4.2.0.58.20000803101939.00cb9630@pop.cygnus.com>
At 05:40 PM 8/3/00 +0100, Bruce Stephens wrote:
>Thomas Heller writes:
>
> > I'm trying to understand how SN starts 'make'.
> > Since I'm an absolute beginner to tcl, can
> > someone please explain the following line
> > (from share/gui/multimake.tcl, method ExecMake):
> >
> > set ret [catch {@@set make_fd [@@open "| $make_cmd" r]} msg]
> >
> > I can decipher most of it, but what do all the @'s mean?
> > Is this standard tcl? I did not find something like
> > this in the Ousterhout book...
>
>Normally it would mean nothing: @@set would simply refer to a command
>called "@@set". However, the ChangeLog in itcl suggests that things
>have been changed so that @@ means the same as ::.
@@ in incr Tcl 1.5 commands does mean the same as ::.
>So try thinking of it in those terms. Ousterhout's book is
>unfortunately too old to cover namespaces; however, the namespace(n)
>manpage describes it. Anyway, namespaces work sufficiently obviously
>that they shouldn't be surprising.
>
>I don't know why they'd have changed things in this way.
This is an evil Cygnus-local hack to get namespaces to work in incr Tcl
1.5. This will go away once we put a snapshot of SN 5.0 on the web.
Hopefully, in September.
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From mdejong@cygnus.com Thu Aug 3 10:57:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 10:57:00 -0000
Subject: Python parser for SN
References: <39896283.A360F249@opteway.com>
Message-ID:
On Thu, 3 Aug 2000, Florent Pillet wrote:
> Mo DeJong wrote:
> >
> > On Thu, 3 Aug 2000, Thomas Heller wrote:
> >
> > > This patch contains a python parser and syntax highlighting for
> > > python.
> > >
> > > Since I don't have automake on my development system (I use NT),
> > > i had to write Makefile.in's and Makefile.am's by hand.
> > >
> > > Enjoy!
> > > Thomas Heller
> >
> > Wow. Looks like we have a winner in the "First Source-Navigator patch"
> > contest. (sorry ben, your wait patch does not count because you work here)
> >
> > I am not sure what the prize will be yet. Perhaps a copy of Red Hat 7.0
> > when it ships? How about a limited edition Source-Navigator shirt?
> > At the very least we are going to have to put a note about this
> > up on the website.
> >
> > Mo DeJong
> > Red Hat Inc
>
> Wow wow wow.... The _first_ patch was mine, when I sent the additions to the C++ parser
> for bool, const_cast, static_cast and reinterpret_cast. I know that's no big deal but if
> there is a contest, I was here first :=))
>
> Cheers,
> Florent.
Sorry about that. Your patch had slipped my mind. We should really
try to get a prize to both of you :) One for the first patch,
the other for first new language support.
Mo DeJong
Red Hat Inc
From segg@infonet.ca Thu Aug 3 14:55:00 2000
From: segg@infonet.ca (Gilles J. Seguin)
Date: Thu, 03 Aug 2000 14:55:00 -0000
Subject: SourceNavigator 4.5.1 : Parsing a given header file hangs cbrowser
References: <39888ED2.35434575@atd.ucar.edu>
Message-ID: <3989EA54.B6578B12@infonet.ca>
Joe Van Andel wrote:
>
> First, thanks for releasing such a nice product as Open Source. I
> really appreciate your efforts.
>
> I build 4.5.1 on Redhat 6.2 (Pentium).
>
> When I create a new project that contains the following header file
>
> FilterParams.h
> ----------------------
>
> class {
> public:
> FilterParams(float *
> int numParams;
> float *params;
>
> } FilterParams, *FilterParamsPtr;
> ----------------------------
>
> cbrowser hangs forever.
We certainely do not want that.
> Note there is a syntax error in this header file - a missing
> parenthesis on the ctor declaration.
> Once I fixed this bug, cbrowser runs as expected.
>
> However, it would be nice if cbrowser had a more resilient error
> recovery strategy :-)
Must we provide a dialog asking for conformance to strict C++,
to different level of the standard. And at he lowest level let
it be a fuzzy C parser.
I am very tempted to allow, get information from *.o file if
they are available, and even more if the object file was
compile with the debug information turn on.
Ask where library/executable genereted by this project are if any.
From bje@redhat.com Thu Aug 3 15:10:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 03 Aug 2000 15:10:00 -0000
Subject: SN Download
References: <39898269.4E7B@csi.uottawa.ca>
Message-ID:
I am trying to download Source Navigator from
ftp://sources.redhat.com/pub/sourcenav/releases/
but it asks me for a username and password.
You need to log in anonymously. ie. "ftp" and email address.
Ben
From mdejong@cygnus.com Thu Aug 3 15:15:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 15:15:00 -0000
Subject: SN Download
References:
Message-ID:
On Fri, 4 Aug 2000, Ben Elliston wrote:
> I am trying to download Source Navigator from
> ftp://sources.redhat.com/pub/sourcenav/releases/
> but it asks me for a username and password.
>
> You need to log in anonymously. ie. "ftp" and email address.
>
> Ben
That just means the FTP site is bogged down with too many
users.
You need to use one of the mirror sites:
http://sources.redhat.com/mirrors.html
ftp://ftp.freesoftware.com/pub/sourceware/sourcenav/releases/SN451.tar.bz2
ftp://ftp.freesoftware.com/pub/sourceware/sourcenav/releases/SN451.tar.gz
Mo DeJong
Red Hat Inc
From segg@infonet.ca Thu Aug 3 15:16:00 2000
From: segg@infonet.ca (Gilles J. Seguin)
Date: Thu, 03 Aug 2000 15:16:00 -0000
Subject: Infrastructure work
References: <200008020023.RAA26982@v-172-16-1-212.soma.redhat.com>
Message-ID: <3989EF48.3DBCF7D7@infonet.ca>
Ian Roxborough wrote:
>
> On Wed, 2 Aug 2000, Ben Elliston wrote:
> > This would be cool, but then we are dependent on the user having a
> > "clean" Tcl version (Some Tcl/Tk apps require core patching before
> > they run). (Of course I'm assume you mean that we should load into
> > the users local Tcl/Tk and not a version from us.)
> >
> > Couldn't snavigator's configure script test the installed Tcl/Tk to
> > determine if it was usable? That's precisely what Autoconf is for!
>
> We could, but how many tests? and what needs tested to make
> sure we're not running on a SN safe tcl/tk. Is it really important?
> I know it's going to be hard tracking down reported bugs only to
> find out the user is running on a none standard tcl/tk.
Can we target tcl/tk version 8.3 supposedly the version for
the upcoming Red Hat 7.0 version (pinestripe)
tcl/tk version 8.4, can you provide information how difficult
it will be.
The question here, how do I will manage all those versions
of tcl/tk. In the sense that nearly every application
require their own version of it.
> > Yeah. It'd also be nice to make Berkeley DB a loadable library, too.
> > Perhaps they already allow it to be built shared?
>
> I'd like to see a more generic DB interface first so we can swap
> out our DB back ends. I've not look at this yet, but may be they
> both go hand in hand.
>
> Ian.
From bje@redhat.com Thu Aug 3 16:15:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 03 Aug 2000 16:15:00 -0000
Subject: snavigator on Linux Sparc64
References: <39896266.77F21DFE@lmc.ericsson.se>
Message-ID:
Hi,
Firstly, can I suggest you change your "real name" to something other than
root? It's bloody confusing to see mail in my inbox that's not from root on
my own system!
If you wish, I could try to help you out with the changes.
That'd be great.
Also, I have download the tcl8.4a1 version and they already fix this
in the tcl sources !
I figured as much. Is there a specific patch for this, or is it just
bundled in with the rest of 8.4?
Ben
From bje@redhat.com Thu Aug 3 16:48:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 03 Aug 2000 16:48:00 -0000
Subject: SourceNavigator 4.5.1 : Parsing a given header file hangs cbrowser
References: <3989EA54.B6578B12@infonet.ca>
Message-ID:
I am very tempted to allow, get information from *.o file if they are
available, and even more if the object file was compile with the debug
information turn on. Ask where library/executable genereted by this
project are if any.
I had actually thought about writing an object file parser using the BFD
library. This could be used to discover the relationships between symbols
in object files. It could be useful to someone trying to improve the
performance of their application by tweaking the linking order of object
files.
Also great if you don't have the source code to programs you're trying to
debug. ;-)
Ben
From mdejong@cygnus.com Thu Aug 3 19:36:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 19:36:00 -0000
Subject: snavigator on Linux Sparc64
References: <39896266.77F21DFE@lmc.ericsson.se>
Message-ID:
On Thu, 3 Aug 2000, root wrote:
> Mo DeJong wrote:
>
> > On Thu, 3 Aug 2000, Ben Elliston wrote:
> >
> > > Could you compare your changes to the most recent CVS version of
> > > Tcl/Tk in the Ajuba CVS? I think there were some Sparc Linux fixes
> > > that have already been applied.
> > >
> > > Nevertheless, this problem is solely in Tcl. I would be surprised if Ajuba
> > > haven't fix it by now--in which case, we could import the patch.
> > >
> > > Ben
> >
> > Yes, but it would be nice if we could get someone to test changes
> > out to make sure it works before we apply them. We do not have
> > a sparc Linux machine here in the SOMA office, so we can't
> > really test it.
> >
> > Mo DeJong
> > Red Hat Inc
>
> If you wish, I could try to help you out with the changes.
>
> Also, I have download the tcl8.4a1 version and they already fix this in the tcl
> sources !
>
> Dan
So, does SN work "out of the box" on Sparc Linux if
you apply this patch?
Index: tclPosixStr.c
===================================================================
RCS file: /home/cvs/external/tcl/generic/tclPosixStr.c,v
retrieving revision 1.5
diff -u -r1.5 tclPosixStr.c
--- tclPosixStr.c 1999/08/21 19:41:04 1.5
+++ tclPosixStr.c 2000/08/04 02:34:45
@@ -986,7 +986,7 @@
#ifdef SIGPROF
case SIGPROF: return "SIGPROF";
#endif
-#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ))
+#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) &&
(!defined(SIGLOST) || (SIGPWR != SIGLOST))
case SIGPWR: return "SIGPWR";
#endif
#ifdef SIGQUIT
@@ -1118,7 +1118,7 @@
#ifdef SIGPROF
case SIGPROF: return "profiling alarm";
#endif
-#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ))
+#if defined(SIGPWR) && (!defined(SIGXFSZ) || (SIGPWR != SIGXFSZ)) &&
(!defined(SIGLOST) || (SIGPWR != SIGLOST))
case SIGPWR: return "power-fail restart";
#endif
#ifdef SIGQUIT
Mo DeJong
Red Hat Inc
From mdejong@cygnus.com Thu Aug 3 20:01:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 03 Aug 2000 20:01:00 -0000
Subject: SN and C Struct's
References:
Message-ID:
On Thu, 3 Aug 2000 dave.banham@tde.alstom.com wrote:
> Dear all,
> I am about to make some suggestions for some improvements to SN4.5.1, but
> thought it best to make my introductions first.
Hi Dave.
> I am a senior software engineer in the UK working for a large engineering
> Company. The products that I am involved with have a reasonably large code base
> of around 400KLOC, most of which is C with a small amount of assembler. All of
> this is embedded with a real time operating system, which is partly why we
> haven't yet made the move to C++, and developed on Win NT4 workstations with
> Clear Case CM. It is also worth noting that the software is partitioned into a
> number of distinct sections, each in its own Clear Case VOB (that is root
> folder), which are maintained by distinct groups of engineers and used by
> several projects/products.
To be honest, the clear case support is not that well tested, so it
will be nice to have someone pounding on it.
... (long list of bugs) ...
> I have had a quick look through the SN SDK manual. It is not very obvious where
> to even start such customisations, and since I am not a TCL/TK programmer it is
> difficult to know where to start. Moreover, it sounds like setting up a MS VC++
> 5 build of SN is going to be a little tricky. Does any one have any suggestions?
Learning Tcl/Tk part is the going to be the most simple part of this
task. There are lots or Tcl/Tk resources on the web.
http://dev.scriptics.com/scripting/
http://starbase.neosoft.com/~claird/comp.lang.tcl/
You could also subscribe to the comp.lang.tcl newsgroup, there
are lot of helpful folks on that newsgroup. You will
be able to ask questions without getting flamed like on
some other scripting language newsgroups.
After that, you will need to learn how to parsers work. This
is by far the least fun, unless you like parsers. The SDK
does an good job with the basics.
If you want to hack on SN itself, be sure to run it like so:
./snavigator --debug 9
That will print lots of info about what SN is doing
to the terminal. It is a good way to find out what is going
on. Don't forget, you can use SN on SN. It is a bit more tricky
because you will be working on more than one language (Tcl and C),
but it works real nice.
Mo DeJong
Red Hat Inc
From segg@infonet.ca Fri Aug 4 00:31:00 2000
From: segg@infonet.ca (Gilles J. Seguin)
Date: Fri, 04 Aug 2000 00:31:00 -0000
Subject: SourceNavigator 4.5.1 : Parsing a given header file hangs cbrowser
References:
Message-ID: <398A7149.70708CED@infonet.ca>
Ben Elliston wrote:
>
> I am very tempted to allow, get information from *.o file if they are
> available, and even more if the object file was compile with the debug
> information turn on. Ask where library/executable genereted by this
> project are if any.
>
> I had actually thought about writing an object file parser using the BFD
> library. This could be used to discover the relationships between symbols
> in object files. It could be useful to someone trying to improve the
> performance of their application by tweaking the linking order of object
> files.
My first thought was to used it as a tool to validate the parser.
Other things that I am looking for, is the area of sequence
diagrams and state diagrams. Can we discover callback sequences
and declarations.
From dave.banham@tde.alstom.com Fri Aug 4 00:35:00 2000
From: dave.banham@tde.alstom.com (dave.banham@tde.alstom.com)
Date: Fri, 04 Aug 2000 00:35:00 -0000
Subject: SN and C Struct's
Message-ID:
Mo,
For what you indicate this sounds like you are suggesting that the C/C++ parser
needs modification so that it classifies/processes C struct's and typedef's
differently. Has the parser not collected sufficient information already and it
is 'simply' (nothing is ever simple!) a matter of modifying the hierarchy and
class browsers?
Will both the parser and the browsers need modification?
This sounds like 'hairy' stuff for an absolute tcl/tk beginner!!!
Regards
Dave Banham
From bje@redhat.com Fri Aug 4 00:44:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Fri, 04 Aug 2000 00:44:00 -0000
Subject: SourceNavigator 4.5.1 : Parsing a given header file hangs cbrowser
References: <398A7149.70708CED@infonet.ca>
Message-ID:
Other things that I am looking for, is the area of sequence diagrams
and state diagrams. Can we discover callback sequences and
declarations.
To a certain extent, that's very hard. While it is possible to trace
callbacks through assignment to pointers-to-functions:
callb = funcA;
It's harder when the callback is assigned at runtine:
switch (rand() % 3)
{
case 0:
callb = funcA;
case 1:
callb = funcB;
case 2:
callb = funcC;
};
Or worse, involving pointer arithmetic!
callb = log + 0x100;
(Yes, eww).
Ben
From nils@indi.aci.uni-heidelberg.de Fri Aug 4 02:21:00 2000
From: nils@indi.aci.uni-heidelberg.de (Nils Braun)
Date: Fri, 04 Aug 2000 02:21:00 -0000
Subject: Support for IRIX
Message-ID: <398A8AF8.B38CF5F6@indi.aci.uni-heidelberg.de>
Hi,
in earlier days of the SN, code for IRIX was supplied. I work with the
version 4.1 of the SN and want to upgrade to the current version.
Unfortunatelly, the source code can not be compiled straight forward on
my SGI. Will there be precompiled binaries available in the future?
Thanks for your help,
Nils Braun
From mdejong@cygnus.com Fri Aug 4 02:33:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Fri, 04 Aug 2000 02:33:00 -0000
Subject: Support for IRIX
References: <398A8AF8.B38CF5F6@indi.aci.uni-heidelberg.de>
Message-ID:
On Fri, 4 Aug 2000, Nils Braun wrote:
> Hi,
>
> in earlier days of the SN, code for IRIX was supplied. I work with the
> version 4.1 of the SN and want to upgrade to the current version.
> Unfortunatelly, the source code can not be compiled straight forward on
> my SGI. Will there be precompiled binaries available in the future?
>
> Thanks for your help,
>
> Nils Braun
It is unlikely that we will be providing IRIX binaries. We
don't have an IRIX box to do testing on. That does not
mean you can not run SN on IRIX. Tcl/Tk works just fine
under IRIX, and the other parts of SN should be fairly
easy to get working under IRIX.
Mo DeJong
Red Hat Inc
From bje@redhat.com Fri Aug 4 04:12:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Fri, 04 Aug 2000 04:12:00 -0000
Subject: Support for IRIX
References: <398A8AF8.B38CF5F6@indi.aci.uni-heidelberg.de>
Message-ID:
in earlier days of the SN, code for IRIX was supplied. I work with the
version 4.1 of the SN and want to upgrade to the current version.
Unfortunatelly, the source code can not be compiled straight forward
on my SGI. Will there be precompiled binaries available in the future?
Why is it so difficult to compile it on your IRIX machine? It shouldn't be
very difficult--all you need is a C compiler and a Bourne shell.
Ben
From mdejong@cygnus.com Fri Aug 4 05:54:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Fri, 04 Aug 2000 05:54:00 -0000
Subject: SN and C Struct's
References:
Message-ID:
On Fri, 4 Aug 2000 dave.banham@tde.alstom.com wrote:
> Mo,
> For what you indicate this sounds like you are suggesting that the C/C++ parser
> needs modification so that it classifies/processes C struct's and typedef's
> differently. Has the parser not collected sufficient information already and it
> is 'simply' (nothing is ever simple!) a matter of modifying the hierarchy and
> class browsers?
If the parser is reading your code properly, that you should not
have to change it. I don't know if it is working correctly
in the case you describe, you will have to look at the
xref files in the DB to figure that out.
You can use dbdump (from the sn/bin dir) to print out
lots of info from the DB.
Here is an quick dump of the to refs in a small DB.
% cat f1.c
int func1(int i) { return 0; }
% cat f2.c
int func2(int i) { return func1(0); }
int funcu() {};
% dbdump .snprj/foo.by
# func1 fu # func2 fu r 000001 f2.c;{int} {int}
% dbdump .snprj/foo.to
# func2 fu # func1 fu r 000001 f2.c;{int} {int}
> Will both the parser and the browsers need modification?
>
> This sounds like 'hairy' stuff for an absolute tcl/tk beginner!!!
If the parser is getting all the info you need, then you can
ignore it and just focus on the browser bits. Trust me, you are
a lot better off writing Tcl code compared to spelunking
around in the parser source.
Mo DeJong
Red Hat Inc
From wgacquer@ubisoft.fr Fri Aug 4 06:07:00 2000
From: wgacquer@ubisoft.fr (William Gacquer)
Date: Fri, 04 Aug 2000 06:07:00 -0000
Subject: Xref-ing non used symbols
Message-ID: <5D2A198567EED311BD0F009027A25C872EF015@SRVMAIL-ANN>
Hello
I would like to retrieve all symbols (especialy C functions) that
are not used at all using the cross referencer. But I did not find the way
to do that. Is this feasible? How?
Regards,
William
________________
William Gacquer
Rayman 2 PS2 team - Ubi Simulations - Annecy France
From wgacquer@ubisoft.fr Fri Aug 4 06:17:00 2000
From: wgacquer@ubisoft.fr (William Gacquer)
Date: Fri, 04 Aug 2000 06:17:00 -0000
Subject: and now, something completely different....
Message-ID: <5D2A198567EED311BD0F009027A25C872EF033@SRVMAIL-ANN>
Some guys in my team find that the way to change SN colors is real pain. I
know that sn is not Gimp but....
Does someone have already altenative predefined colors?
Maybe some kind of ".emacs-like" ressources available from your web site
would be great.
William
________________
William Gacquer
Rayman 2 PS2 team - Ubi Simulations - Annecy France
From BBurton@3dfx.com Fri Aug 4 08:44:00 2000
From: BBurton@3dfx.com (Brent Burton)
Date: Fri, 04 Aug 2000 08:44:00 -0000
Subject: Current Tcl and other languages projects?
Message-ID: <2C8579D633A0D3119C28009027AF5233375B9F@exchange1.stb.com>
Hello all,
I just joined the Sourcenav list, and was browsing
the list archives. Recently, someone contributed a Python
parser, and others were discussing improvements to
the Tcl parser, as well as a Perl parser.
Is there a list of current projects anywhere? And in
particular, does anyone know of an x86 assembly
parser (either UNIX or Win/MASM convention)?
thanks,
-bpb
Brent Burton
3dfx Interactive
From mdejong@cygnus.com Fri Aug 4 12:52:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Fri, 04 Aug 2000 12:52:00 -0000
Subject: Current Tcl and other languages projects?
References: <2C8579D633A0D3119C28009027AF5233375B9F@exchange1.stb.com>
Message-ID:
On Fri, 4 Aug 2000, Brent Burton wrote:
> Hello all,
>
> I just joined the Sourcenav list, and was browsing
> the list archives. Recently, someone contributed a Python
> parser, and others were discussing improvements to
> the Tcl parser, as well as a Perl parser.
>
> Is there a list of current projects anywhere? And in
> particular, does anyone know of an x86 assembly
> parser (either UNIX or Win/MASM convention)?
See $INSTALL/snavigator/share/sdk/parsers/examples/assembly
Run "make TARGET=linux-i486-elf" to create an x86 ASM
parser. We still need to do some work to add the ability
to use multiple ASM parsers, right now to can only use
one, and you have to install it.
The lack of a projects page is a known problem, I just
need to find some free time to write one.
Mo DeJong
Red Hat Inc
From spolk@redhat.com Fri Aug 4 13:23:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Fri, 04 Aug 2000 13:23:00 -0000
Subject: New patches uploaded
Message-ID: <4.2.0.58.20000804132350.00cd8950@pop.cygnus.com>
Two new patches have been uploaded to
ftp://sources.redhat.com/sourcenav/releases/patches . One is general
documentation cleanup, and one adds a python parser to sourcenav.
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From bje@redhat.com Fri Aug 4 16:22:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Fri, 04 Aug 2000 16:22:00 -0000
Subject: New patches uploaded
References: <4.2.0.58.20000804132350.00cd8950@pop.cygnus.com>
Message-ID:
Two new patches have been uploaded to
ftp://sources.redhat.com/sourcenav/releases/patches . One is general
documentation cleanup, and one adds a python parser to sourcenav.
Hi. Just a correction--the URL should be:
ftp://sources.redhat.com/pub/sourcenav/releases/patches/
Cheers, Ben
From bje@redhat.com Fri Aug 4 16:25:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Fri, 04 Aug 2000 16:25:00 -0000
Subject: Xref-ing non used symbols
References: <5D2A198567EED311BD0F009027A25C872EF015@SRVMAIL-ANN>
Message-ID:
I would like to retrieve all symbols (especialy C functions) that
are not used at all using the cross referencer. But I did not find the
way to do that. Is this feasible? How?
Take a look at some of the example Tcl scripts for examples. There is one
that finds unused global variables in:
snavigator/sdk/api/tcl/database/examples/unused.tcl
Ben
From bje@redhat.com Fri Aug 4 16:27:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Fri, 04 Aug 2000 16:27:00 -0000
Subject: Current Tcl and other languages projects?
References: <2C8579D633A0D3119C28009027AF5233375B9F@exchange1.stb.com>
Message-ID:
I just joined the Sourcenav list, and was browsing the list archives.
Recently, someone contributed a Python parser, and others were
discussing improvements to the Tcl parser, as well as a Perl parser.
Is there a list of current projects anywhere? And in particular, does
anyone know of an x86 assembly parser (either UNIX or Win/MASM
convention)?
There is a Makefile to help generate assembly parsers. Take a look at:
snavigator/sdk/parsers/examples/assembly/README
Cheers, Ben
From lohner@debian.org Sat Aug 5 05:36:00 2000
From: lohner@debian.org (Nils Lohner)
Date: Sat, 05 Aug 2000 05:36:00 -0000
Subject: First questions...
Message-ID: <200008051239.OAA24554@topaze.ecf.teradyne.com>
Hello,
I've just downloaded sourcenav and am in the process of compiling it under
solaris. I already have a few comments and questions.
1. Why isn't it available from CVS? at 14M for the source its a pain to
keep up, especially over slow (<=ISDN) links. cvs would help this project
develop more quickly IMO.
2. Why on earth is tcl/tk 8.1 _included_ in the sourceball??!!??
/sup/build/SN451 > du -s t*8.1
13846 tcl8.1
10195 tk8.1
I won't do a 'make install' until I'm sure it won't try to overwrite my
current 8.3.1 installation. Can someone please explain why its included?
3. an online TODO list would be useful.
Well, it's still building... I'll try it with tcl/tk 8.3.1 as soon as its
done. What else is being done on this project at the moment?
Regards, Nils.
From mdejong@cygnus.com Sat Aug 5 14:55:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sat, 05 Aug 2000 14:55:00 -0000
Subject: First questions...
References: <200008051239.OAA24554@topaze.ecf.teradyne.com>
Message-ID:
On Sat, 5 Aug 2000, Nils Lohner wrote:
> Hello,
> I've just downloaded sourcenav and am in the process of compiling it under
> solaris. I already have a few comments and questions.
>
> 1. Why isn't it available from CVS? at 14M for the source its a pain to
> keep up, especially over slow (<=ISDN) links. cvs would help this project
> develop more quickly IMO.
It will be available as a CVS module "soon". We need to do some work
upgrading Tcl/Tk for both sourcenav and insight before we can make
them available in the sourceware CVS.
> 2. Why on earth is tcl/tk 8.1 _included_ in the sourceball??!!??
> /sup/build/SN451 > du -s t*8.1
> 13846 tcl8.1
> 10195 tk8.1
Because you need Tcl/Tk to run Source-Navigator.
> I won't do a 'make install' until I'm sure it won't try to overwrite my
> current 8.3.1 installation. Can someone please explain why its included?
Because the code does not work with Tcl/Tk 8.3 yet, we are in the
process of upgrading. You do not need to worry about overwriting
anything, just configure with --prefix=${HOME}/sourcenav or something.
> 3. an online TODO list would be useful.
>
> Well, it's still building... I'll try it with tcl/tk 8.3.1 as soon as its
> done. What else is being done on this project at the moment?
That is a known problem, we need to put a TODO list and a
projects list on the website.
Mo DeJong
Red Hat Inc
From bje@redhat.com Sat Aug 5 21:23:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Sat, 05 Aug 2000 21:23:00 -0000
Subject: First questions...
References: <200008051239.OAA24554@topaze.ecf.teradyne.com>
Message-ID:
2. Why on earth is tcl/tk 8.1 _included_ in the sourceball??!!??
S-N requires local patches to Tcl and Tk. I understand work is underway to
remove these dependencies--presumably by ensuring that these patches are a)
completely necessary, and b) included in the Tcl/Tk core release.
Ben
From amit.erez@intel.com Sun Aug 6 07:26:00 2000
From: amit.erez@intel.com (Erez, Amit)
Date: Sun, 06 Aug 2000 07:26:00 -0000
Subject: stable releases
Message-ID:
Hi There.
I was trying to look at the so called 'stable releases' in you Web page
http://sources.redhat.com/sourcenav/download.html
It is not accessible.
Any other location this may be found?
Thanks,
Amit.
From petersen@aspi.net Sun Aug 6 09:49:00 2000
From: petersen@aspi.net (Carl C. Petersen)
Date: Sun, 06 Aug 2000 09:49:00 -0000
Subject: SN and C Struct's
References:
Message-ID: <398D9717.C3BFAF9@aspi.net>
Mo DeJong wrote:
>
> On Thu, 3 Aug 2000 dave.banham@tde.alstom.com wrote:
>
> > Dear all,
> > I am about to make some suggestions for some improvements to SN4.5.1, but
> > thought it best to make my introductions first.
>
> Hi Dave.
>
> > I am a senior software engineer in the UK working for a large engineering
> > Company. The products that I am involved with have a reasonably large code base
> > of around 400KLOC, most of which is C with a small amount of assembler. All of
> > this is embedded with a real time operating system, which is partly why we
> > haven't yet made the move to C++, and developed on Win NT4 workstations with
> > Clear Case CM. It is also worth noting that the software is partitioned into a
> > number of distinct sections, each in its own Clear Case VOB (that is root
> > folder), which are maintained by distinct groups of engineers and used by
> > several projects/products.
>
> To be honest, the clear case support is not that well tested, so it
> will be nice to have someone pounding on it.
>
> ... (long list of bugs) ...
>
> > I have had a quick look through the SN SDK manual. It is not very obvious where
> > to even start such customisations, and since I am not a TCL/TK programmer it is
> > difficult to know where to start. Moreover, it sounds like setting up a MS VC++
> > 5 build of SN is going to be a little tricky. Does any one have any suggestions?
< snip >
>
> If you want to hack on SN itself, be sure to run it like so:
>
> ./snavigator --debug 9
>
> That will print lots of info about what SN is doing
> to the terminal. It is a good way to find out what is going
> on. Don't forget, you can use SN on SN. It is a bit more tricky
> because you will be working on more than one language (Tcl and C),
> but it works real nice.
>
Out of curiosity how have you set up SN for SN. Is it all one project
or have you broken out the components into sub projects?
-carl
From Helmut.Herrmann@aeon.de Sun Aug 6 10:12:00 2000
From: Helmut.Herrmann@aeon.de (Helmut Herrmann)
Date: Sun, 06 Aug 2000 10:12:00 -0000
Subject: stable releases
References:
Message-ID: <003b01bfffc9$b9488430$0d20a8c0@double>
Hi Amit,
I made the same experience. Try the mirror sites. At least at the German
mirror site I had success.
Regards,
Helmut
----- Original Message -----
From: Erez, Amit
>
> Hi There.
> I was trying to look at the so called 'stable releases' in you Web
page
>
> http://sources.redhat.com/sourcenav/download.html
>
> It is not accessible.
>
> Any other location this may be found?
>
> Thanks,
>
> Amit.
From Helmut.Herrmann@aeon.de Sun Aug 6 10:28:00 2000
From: Helmut.Herrmann@aeon.de (Helmut Herrmann)
Date: Sun, 06 Aug 2000 10:28:00 -0000
Subject: Invalid command "sn_tcl_tk_init"
Message-ID: <00db01bfffcb$ec5a0630$0d20a8c0@double>
Hello,
I am new to this list. As I had difficulties in starting Source
Navigator logged in as normal user after having it installed as root (on
Linux SuSE 6.4) I searched the archive. I concluded from the
contributions that one of the available patches fixes the problem. Thus,
I tried those patches but without success. Could anybody point me into
the right direction and tell me the actual status?
Thanks,
Helmut
From petersen@aspi.net Sun Aug 6 11:37:00 2000
From: petersen@aspi.net (Carl Petersen)
Date: Sun, 06 Aug 2000 11:37:00 -0000
Subject: Invalid command "sn_tcl_tk_init"
References: <00db01bfffcb$ec5a0630$0d20a8c0@double>
Message-ID: <398DB093.90BD6FD1@aspi.net>
Helmut Herrmann wrote:
>
> Hello,
>
> I am new to this list. As I had difficulties in starting Source
> Navigator logged in as normal user after having it installed as root (on
> Linux SuSE 6.4) I searched the archive. I concluded from the
> contributions that one of the available patches fixes the problem. Thus,
> I tried those patches but without success. Could anybody point me into
> the right direction and tell me the actual status?
>
> Thanks,
> Helmut
There was a problem with permissions on a couple of files which
prevented non-root users from running SN. Applying the patches and
rebuilding the SN source should take care of the problem, at least
it does here.
-Carl
From mdejong@cygnus.com Sun Aug 6 13:14:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sun, 06 Aug 2000 13:14:00 -0000
Subject: SN and C Struct's
References: <398D9717.C3BFAF9@aspi.net>
Message-ID:
> Out of curiosity how have you set up SN for SN. Is it all one project
> or have you broken out the components into sub projects?
>
> -carl
All in one big project. That makes it really easy to jump around
from SN Tcl code, to SN C code, to Tcl C code, to Itcl C code, you
get the idea. I also tend to have a copy of Tcl 8.3 sitting in
its own project so that I can compare Tcl 8.1 C code to the new
version.
Mo DeJong
Red Hat Inc
From mdejong@cygnus.com Sun Aug 6 13:18:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sun, 06 Aug 2000 13:18:00 -0000
Subject: Invalid command "sn_tcl_tk_init"
References: <00db01bfffcb$ec5a0630$0d20a8c0@double>
Message-ID:
> Hello,
>
> I am new to this list. As I had difficulties in starting Source
> Navigator logged in as normal user after having it installed as root (on
> Linux SuSE 6.4) I searched the archive. I concluded from the
> contributions that one of the available patches fixes the problem. Thus,
> I tried those patches but without success. Could anybody point me into
> the right direction and tell me the actual status?
>
> Thanks,
> Helmut
You applied this patch?
ftp://sources.redhat.com/pub/sourcenav/releases/patches/0001-spolk-000725-patch
That should have fixed it. This is the part that fixes that
problem.
Index: snavigator/gui/Makefile.am
===================================================================
RCS file: /cvs/cvsfiles/devo/snavigator/gui/Makefile.am,v
retrieving revision 1.27.2.2.2.3.4.4
diff -c -2 -p -r1.27.2.2.2.3.4.4 Makefile.am
*** snavigator/gui/Makefile.am 2000/02/11 23:48:34 1.27.2.2.2.3.4.4
--- snavigator/gui/Makefile.am 2000/07/25 19:19:57
*************** tclIndex: $(prog_DATA)
*** 43,47 ****
here=`pwd`; cd $(srcdir) && \
rm -f tclIndex && \
! echo "source $(ITCL_MKINDEX_DIR)/itcl_mkindex.tcl; itcl_mkindex
$(SN_GUI_DIR)" | @ITCL_SH@
all-local: tclIndex
--- 43,48 ----
here=`pwd`; cd $(srcdir) && \
rm -f tclIndex && \
! echo "source $(ITCL_MKINDEX_DIR)/itcl_mkindex.tcl; itcl_mkindex
$(SN_GUI_DIR)" | @ITCL_SH@ && \
! chmod 644 tclIndex
You just need a chmod.
Mo DeJong
Red Hat Inc
From bje@redhat.com Sun Aug 6 14:47:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Sun, 06 Aug 2000 14:47:00 -0000
Subject: stable releases
References: <003b01bfffc9$b9488430$0d20a8c0@double>
Message-ID:
I made the same experience. Try the mirror sites. At least at the
German mirror site I had success.
The sources.redhat.com FTP server is very overworked.
Ben
From bje@redhat.com Sun Aug 6 15:43:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Sun, 06 Aug 2000 15:43:00 -0000
Subject: First questions...
References: <200008060939.LAA04879@topaze.ecf.teradyne.com>
Message-ID:
Hi Nils,
[this will not make it to the list; I'm ORBS blocked atm and our
admins are working on it...)
I know the feeling.
... and why does it have it's own grep that it installs in the
$prefix/bin directory??!?
S-N required a special version of grep that did things like a) took a list
of files to grep from an input file and b) indicated its progress as it
went. As I understand it, that requirement has been lifted from the
development tree--Mo, can you explain how you got around these requirements
so you could use the any old grep?
It definitely does install parts of tcl and TK, and almost all of the
manpages. I assume that if there are namespace collisions, the newer
manpages that I had installed are overwritten. Wonderful.
I hear you.
It also installs a TON of executables in the main bin dir. Why not
have it install them in its own share/SN/bin dir and add the path when
the main executable is loaded?
What you are suggesting doesn't conform to the GNU directory layout. If
there are a lot of executables in the bin/ directory, perhaps we need to
look at moving them to libexec if they aren't programs that a user would
invoke directly themselves.
>From the directory listing you've given, I can see straight away that all of
the parsers (abrowser, cbrowser, fbrowser, etc) could be moved into libexec/
right now. Thoughts, guys?
And as you suggest, removing the dependency on installing Tcl and Tk will
help a lot.
Ben
From mdejong@cygnus.com Sun Aug 6 16:03:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sun, 06 Aug 2000 16:03:00 -0000
Subject: First questions...
References:
Message-ID:
On Mon, 7 Aug 2000, Ben Elliston wrote:
> ... and why does it have it's own grep that it installs in the
> $prefix/bin directory??!?
>
> S-N required a special version of grep that did things like a) took a list
> of files to grep from an input file and b) indicated its progress as it
> went. As I understand it, that requirement has been lifted from the
> development tree--Mo, can you explain how you got around these requirements
> so you could use the any old grep?
The custom grep was used in the % done meter, that little meter
that goes from 1% to 100% as the grep is running. We are not going to
have a % done meter in 5.0. It is just not worth it, we just can't
require a custom version of grep. The custom grep was also used
for some result highlighting, but it will be faster to do that
with a Tcl regexp command once we move up to 8.3.
> It definitely does install parts of tcl and TK, and almost all of the
> manpages. I assume that if there are namespace collisions, the newer
> manpages that I had installed are overwritten. Wonderful.
>
> I hear you.
Yes, it installs Tcl/Tk, I already mentioned that Tcl/Tk is required
by SN.
> It also installs a TON of executables in the main bin dir. Why not
> have it install them in its own share/SN/bin dir and add the path when
> the main executable is loaded?
>
> What you are suggesting doesn't conform to the GNU directory layout. If
> there are a lot of executables in the bin/ directory, perhaps we need to
> look at moving them to libexec if they aren't programs that a user would
> invoke directly themselves.
If you don't like it, just use --prefix.
> >From the directory listing you've given, I can see straight away that all of
> the parsers (abrowser, cbrowser, fbrowser, etc) could be moved into libexec/
> right now. Thoughts, guys?
>
> And as you suggest, removing the dependency on installing Tcl and Tk will
> help a lot.
We are still going to need to build Tcl/Tk, it is unlikely that
a given system is going to have the right versions or Tcl, Tk,
Itcl, BLT, Tix, or whatever. We need to supply them. It may be possible
to allow the user to tell the system not to use its own version
and use the system ones instead, but that will not be the default.
Come on, folks can not even fix a missing chmod, there is no
way everyone is going to be able to figure out problems related
to building with the wrong version of Tcl/Tk.
Mo DeJong
Red Hat Inc
From bje@redhat.com Sun Aug 6 16:25:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Sun, 06 Aug 2000 16:25:00 -0000
Subject: First questions...
References:
Message-ID:
> What you are suggesting doesn't conform to the GNU directory layout. If
> there are a lot of executables in the bin/ directory, perhaps we need to
> look at moving them to libexec if they aren't programs that a user would
> invoke directly themselves.
If you don't like it, just use --prefix.
It's not good style to leave non-user-visible programs lying around in the
bin directory. That's what the libexec directory is for.
We are still going to need to build Tcl/Tk, it is unlikely that a
given system is going to have the right versions or Tcl, Tk, Itcl,
BLT, Tix, or whatever. We need to supply them. It may be possible to
allow the user to tell the system not to use its own version and use
the system ones instead, but that will not be the default. Come on,
folks can not even fix a missing chmod, there is no way everyone is
going to be able to figure out problems related to building with the
wrong version of Tcl/Tk.
I'm not suggesting that we try to run with the installed versions of these
packages. I'm just suggesting that we don't _include_ the source to all of
them in the snavigator tarball. If we require _exactly_ Tcl 8.3 or
whatever, then we can have `configure' test for this.
Ben
From broonie@tardis.ed.ac.uk Sun Aug 6 16:39:00 2000
From: broonie@tardis.ed.ac.uk (Mark Brown)
Date: Sun, 06 Aug 2000 16:39:00 -0000
Subject: First questions...
References:
Message-ID: <20000807003740.D20879@tardis.ed.ac.uk>
On Sun, Aug 06, 2000 at 04:03:37PM -0700, Mo DeJong wrote:
> Itcl, BLT, Tix, or whatever. We need to supply them. It may be possible
> to allow the user to tell the system not to use its own version
> and use the system ones instead, but that will not be the default.
Is it not possible to write an autoconf test to detect what you need?
> Come on, folks can not even fix a missing chmod, there is no
> way everyone is going to be able to figure out problems related
> to building with the wrong version of Tcl/Tk.
If you make installing the versions you ship non-optional you're
going to annoy people who actually look at what you're trying to do.
I certainly feel unhappy installing a program that seems to want to
stomp over as much of my system as Source Navigator does - particularly
things like TCL/Tk.
--
Mark Brown mailto:broonie@tardis.ed.ac.uk (Trying to avoid grumpiness)
http://www.tardis.ed.ac.uk/~broonie/
EUFS http://www.eusa.ed.ac.uk/societies/filmsoc/
From mdejong@cygnus.com Sun Aug 6 16:58:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sun, 06 Aug 2000 16:58:00 -0000
Subject: First questions...
References: <20000807003740.D20879@tardis.ed.ac.uk>
Message-ID:
On Mon, 7 Aug 2000, Mark Brown wrote:
> On Sun, Aug 06, 2000 at 04:03:37PM -0700, Mo DeJong wrote:
>
> > Itcl, BLT, Tix, or whatever. We need to supply them. It may be possible
> > to allow the user to tell the system not to use its own version
> > and use the system ones instead, but that will not be the default.
>
> Is it not possible to write an autoconf test to detect what you need?
Not unless the autoconf test downloads, builds, and installs
the correct versions of each package you do not have.
> > Come on, folks can not even fix a missing chmod, there is no
> > way everyone is going to be able to figure out problems related
> > to building with the wrong version of Tcl/Tk.
>
> If you make installing the versions you ship non-optional you're
> going to annoy people who actually look at what you're trying to do.
> I certainly feel unhappy installing a program that seems to want to
> stomp over as much of my system as Source Navigator does - particularly
> things like TCL/Tk.
Why can't you just use --prefix=/usr/local/SN? Perhaps the current
approach is non-optimal. Are you willing to help improve it?
Mo DeJong
Red Hat Inc
From broonie@tardis.ed.ac.uk Sun Aug 6 17:49:00 2000
From: broonie@tardis.ed.ac.uk (Mark Brown)
Date: Sun, 06 Aug 2000 17:49:00 -0000
Subject: First questions...
References: <20000807003740.D20879@tardis.ed.ac.uk>
Message-ID: <20000807014612.E20879@tardis.ed.ac.uk>
On Sun, Aug 06, 2000 at 04:58:40PM -0700, Mo DeJong wrote:
> On Mon, 7 Aug 2000, Mark Brown wrote:
> > Is it not possible to write an autoconf test to detect what you need?
> Not unless the autoconf test downloads, builds, and installs
> the correct versions of each package you do not have.
People should be able to cope with installing things - other packages
seem to manage to avoid shipping and/or installing all the stuff they
need unconditionally. It's probably worth remembering that a lot of
the users you're worrying about are going to wind up getting a
prepackaged version.
> Why can't you just use --prefix=/usr/local/SN? Perhaps the current
That's horrible. With my sysadmin hat on, it sets off lots of alarm
bells about the effort that's going to be required to maintain the
software. With my developer hat on, things like that make me worry
that the software might be fragile. I can introduce enough bugs by
myself without worrying about tools being buggy :-) .
It's not insurmountable by any stretch of the imagination, but it's
definately broken.
> approach is non-optimal. Are you willing to help improve it?
Potentially; there doesn't seem much point looking at it right now
while these custom versions are still required.
--
Mark Brown mailto:broonie@tardis.ed.ac.uk (Trying to avoid grumpiness)
http://www.tardis.ed.ac.uk/~broonie/
EUFS http://www.eusa.ed.ac.uk/societies/filmsoc/
From mdejong@cygnus.com Sun Aug 6 18:26:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Sun, 06 Aug 2000 18:26:00 -0000
Subject: First questions...
References: <20000807014612.E20879@tardis.ed.ac.uk>
Message-ID:
On Mon, 7 Aug 2000, Mark Brown wrote:
> On Sun, Aug 06, 2000 at 04:58:40PM -0700, Mo DeJong wrote:
> > On Mon, 7 Aug 2000, Mark Brown wrote:
>
> > > Is it not possible to write an autoconf test to detect what you need?
>
> > Not unless the autoconf test downloads, builds, and installs
> > the correct versions of each package you do not have.
>
> People should be able to cope with installing things - other packages
> seem to manage to avoid shipping and/or installing all the stuff they
> need unconditionally. It's probably worth remembering that a lot of
> the users you're worrying about are going to wind up getting a
> prepackaged version.
One would hope. The sad fact is that most people are not
able to build and install unless it is really simple.
./configure ; make install is nice and simple, building
with external packages is not.
> > Why can't you just use --prefix=/usr/local/SN? Perhaps the current
>
> That's horrible. With my sysadmin hat on, it sets off lots of alarm
> bells about the effort that's going to be required to maintain the
> software. With my developer hat on, things like that make me worry
> that the software might be fragile. I can introduce enough bugs by
> myself without worrying about tools being buggy :-) .
>
> It's not insurmountable by any stretch of the imagination, but it's
> definately broken.
>
> > approach is non-optimal. Are you willing to help improve it?
>
> Potentially; there doesn't seem much point looking at it right now
> while these custom versions are still required.
Agreed. For right now, just use --prefix. This should be addressed
in 5.0, after we finish moving up to 8.3.
Mo DeJong
Red Hat Inc
From bruce.stephens@messagingdirect.com Mon Aug 7 02:26:00 2000
From: bruce.stephens@messagingdirect.com (Bruce Stephens)
Date: Mon, 07 Aug 2000 02:26:00 -0000
Subject: First questions...
References:
Message-ID:
Mo DeJong writes:
> On Mon, 7 Aug 2000, Mark Brown wrote:
[...]
> > People should be able to cope with installing things - other packages
> > seem to manage to avoid shipping and/or installing all the stuff they
> > need unconditionally. It's probably worth remembering that a lot of
> > the users you're worrying about are going to wind up getting a
> > prepackaged version.
>
> One would hope. The sad fact is that most people are not
> able to build and install unless it is really simple.
> ./configure ; make install is nice and simple, building
> with external packages is not.
Things are typically different with GNU/Linux and *BSD, though. In
both cases, you surely want to make it easy to build SN so that it
uses preinstalled versions of Tcl, Tk, itcl, BLT, because the people
getting the binary packages can also easily get binary packages of the
external packages which will install in sane places.
--
Bruce Stephens Bruce.Stephens@MessagingDirect.com
MessagingDirect(UK) Ltd
From wgacquer@ubisoft.fr Mon Aug 7 03:37:00 2000
From: wgacquer@ubisoft.fr (William Gacquer)
Date: Mon, 07 Aug 2000 03:37:00 -0000
Subject: Xref-ing non used symbols
Message-ID: <5D2A198567EED311BD0F009027A25C872EF278@SRVMAIL-ANN>
Thanks Ben
I have tried that but I got the following error message :
Error in startup script: invalid command name "dbopen"
In fact, "man dbopen" refers to a command called dbopen but I was
not able to find it on my linux system, even in the source navigator tree.
Any idea?
-----Original Message-----
From: Ben Elliston [ mailto:bje@redhat.com ]
Sent: samedi 5 ao????t 2000 01:25
To: William Gacquer
Cc: sourcenav@sources.redhat.com
Subject: Re: Xref-ing non used symbols
I would like to retrieve all symbols (especialy C functions) that
are not used at all using the cross referencer. But I did not find the
way to do that. Is this feasible? How?
Take a look at some of the example Tcl scripts for examples. There is one
that finds unused global variables in:
snavigator/sdk/api/tcl/database/examples/unused.tcl
Ben
From bruce.stephens@messagingdirect.com Mon Aug 7 03:47:00 2000
From: bruce.stephens@messagingdirect.com (Bruce Stephens)
Date: Mon, 07 Aug 2000 03:47:00 -0000
Subject: Xref-ing non used symbols
References: <5D2A198567EED311BD0F009027A25C872EF278@SRVMAIL-ANN>
Message-ID:
William Gacquer writes:
> Thanks Ben
> I have tried that but I got the following error message :
> Error in startup script: invalid command name "dbopen"
>
> In fact, "man dbopen" refers to a command called dbopen but I was
> not able to find it on my linux system, even in the source navigator tree.
>
> Any idea?
It's a Tcl command, defined by the libraries included in the SN Tcl
interpreter "hyper". How exactly did you run unused.tcl?
--
Bruce Stephens Bruce.Stephens@MessagingDirect.com
MessagingDirect(UK) Ltd
From wgacquer@ubisoft.fr Mon Aug 7 04:00:00 2000
From: wgacquer@ubisoft.fr (William Gacquer)
Date: Mon, 07 Aug 2000 04:00:00 -0000
Subject: Xref-ing non used symbols
Message-ID: <5D2A198567EED311BD0F009027A25C872EF27A@SRVMAIL-ANN>
My project is located in /home/wgacquer/Project
A ".snprj" directory is in /home/wgacquer/Project
A "Project.proj" file is in /home/wgacquer/Project
thus I tried :
export PATH=/usr/local/snavigator/bin:$PATH
wish unused.tcl /home/wgacquer/Project Project
wish unused.tcl /home/wgacquer/Project Project.proj
wish unused.tcl /home/wgacquer/Project /home/wgacquer/Project/Project.proj
but definitely, it does not work.
-----Original Message-----
From: Bruce Stephens [ mailto:bruce.stephens@messagingdirect.com ]
Sent: lundi 7 ao????t 2000 12:47
To: sourcenav@sources.redhat.com
Subject: Re: Xref-ing non used symbols
William Gacquer writes:
> Thanks Ben
> I have tried that but I got the following error message :
> Error in startup script: invalid command name "dbopen"
>
> In fact, "man dbopen" refers to a command called dbopen but I was
> not able to find it on my linux system, even in the source navigator tree.
>
> Any idea?
It's a Tcl command, defined by the libraries included in the SN Tcl
interpreter "hyper". How exactly did you run unused.tcl?
--
Bruce Stephens Bruce.Stephens@MessagingDirect.com
MessagingDirect(UK) Ltd
From bruce.stephens@messagingdirect.com Mon Aug 7 04:09:00 2000
From: bruce.stephens@messagingdirect.com (Bruce Stephens)
Date: Mon, 07 Aug 2000 04:09:00 -0000
Subject: Xref-ing non used symbols
References: <5D2A198567EED311BD0F009027A25C872EF278@SRVMAIL-ANN>
Message-ID:
Bruce Stephens writes:
> It's a Tcl command, defined by the libraries included in the SN Tcl
> interpreter "hyper". How exactly did you run unused.tcl?
hyper requires some environment, too---the script snavigator show what
it needs. Here's a suitable "hyper" script (hacked from snavigator)
which you could put (after changing /usr/local/sn to whatever you
used) suitably earlier in your path:
From bruce.stephens@messagingdirect.com Mon Aug 7 04:12:00 2000
From: bruce.stephens@messagingdirect.com (Bruce Stephens)
Date: Mon, 07 Aug 2000 04:12:00 -0000
Subject: Xref-ing non used symbols
References: <5D2A198567EED311BD0F009027A25C872EF27A@SRVMAIL-ANN>
Message-ID:
William Gacquer writes:
> My project is located in /home/wgacquer/Project
> A ".snprj" directory is in /home/wgacquer/Project
> A "Project.proj" file is in /home/wgacquer/Project
>
> thus I tried :
>
> export PATH=/usr/local/snavigator/bin:$PATH
> wish unused.tcl /home/wgacquer/Project Project
> wish unused.tcl /home/wgacquer/Project Project.proj
> wish unused.tcl /home/wgacquer/Project /home/wgacquer/Project/Project.proj
>
> but definitely, it does not work.
That explains it. You must use hyper, not wish. (The script I just
sent may be convenient.) With the script, I just did the following,
and it worked:
/usr/local/sn/share/sdk/api/tcl/database/examples/unused.tcl /snprj/zsh zsh
--
Bruce Stephens Bruce.Stephens@MessagingDirect.com
MessagingDirect(UK) Ltd
From wgacquer@ubisoft.fr Mon Aug 7 05:36:00 2000
From: wgacquer@ubisoft.fr (William Gacquer)
Date: Mon, 07 Aug 2000 05:36:00 -0000
Subject: Xref-ing non used symbols
Message-ID: <5D2A198567EED311BD0F009027A25C872EF2B9@SRVMAIL-ANN>
Thank you very much!
You solved my problem!
William
-----Original Message-----
From: Bruce Stephens [ mailto:bruce.stephens@messagingdirect.com ]
Sent: lundi 7 ao????t 2000 13:09
To: sourcenav@sources.redhat.com
Subject: Re: Xref-ing non used symbols
Bruce Stephens writes:
> It's a Tcl command, defined by the libraries included in the SN Tcl
> interpreter "hyper". How exactly did you run unused.tcl?
hyper requires some environment, too---the script snavigator show what
it needs. Here's a suitable "hyper" script (hacked from snavigator)
which you could put (after changing /usr/local/sn to whatever you
used) suitably earlier in your path:
From spolk@redhat.com Mon Aug 7 09:01:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Mon, 07 Aug 2000 09:01:00 -0000
Subject: First questions...
References: <200008051239.OAA24554@topaze.ecf.teradyne.com>
Message-ID: <398EDDE6.2DE63D2C@redhat.com>
Nils Lohner wrote:
>
> Hello,
> I've just downloaded sourcenav and am in the process of compiling it under
> solaris. I already have a few comments and questions.
>
> 1. Why isn't it available from CVS? at 14M for the source its a pain to
> keep up, especially over slow (<=ISDN) links. cvs would help this project
> develop more quickly IMO.
There are multiple reasons. One is that this version of the source is not the
active development branch. The other is related to below.
>
> 2. Why on earth is tcl/tk 8.1 _included_ in the sourceball??!!??
> /sup/build/SN451 > du -s t*8.1
> 13846 tcl8.1
> 10195 tk8.1
>
> I won't do a 'make install' until I'm sure it won't try to overwrite my
> current 8.3.1 installation. Can someone please explain why its included?
This will not impact you tcl 8.3.1 install. There are many reasons why we
include our own tcl version:
- This version of tcl builds in more environments
- Not everybody has tcl installed, esp. on non-Linux environments
- We share versions of Tcl with other cygnus projects. We are in the process of
upgrading tcl versions accross the board, and having our own tcl version insures
we won't screw ourselves or other projects.
- There are unfortunately Cyngus-local Tcl/Tk changes which we are in the
process of removing or submitting as patches to the mainline distribution.
> 3. an online TODO list would be useful.
>
> Well, it's still building... I'll try it with tcl/tk 8.3.1 as soon as its
> done. What else is being done on this project at the moment?
You are going to get compile and/or link errors if you try to use tcl/tk 8.3.1.
I would suggest you browse the mailing list archives.
> Regards, Nils.
From spolk@redhat.com Mon Aug 7 09:04:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Mon, 07 Aug 2000 09:04:00 -0000
Subject: stable releases
References:
Message-ID: <398EDEA8.B419AFA@redhat.com>
Try looking at one of the mirror sites: http://sources.redhat.com/mirrors.html .
The ftp server on sources.redhat.com does get quite loaded at times.
"Erez, Amit" wrote:
>
> Hi There.
> I was trying to look at the so called 'stable releases' in you Web page
>
> http://sources.redhat.com/sourcenav/download.html
>
> It is not accessible.
>
> Any other location this may be found?
>
> Thanks,
>
> Amit.
From spolk@redhat.com Mon Aug 7 09:08:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Mon, 07 Aug 2000 09:08:00 -0000
Subject: First questions...
References:
Message-ID: <398EDF7D.5331B34B@redhat.com>
> It also installs a TON of executables in the main bin dir. Why not
> have it install them in its own share/SN/bin dir and add the path when
> the main executable is loaded?
>
> What you are suggesting doesn't conform to the GNU directory layout. If
> there are a lot of executables in the bin/ directory, perhaps we need to
> look at moving them to libexec if they aren't programs that a user would
> invoke directly themselves.
The problem with that is that making a libexec directory makes it really hard to
launch from Windows. It makes it necessary to put some of the sourcenav
directories on the path. It is not really feasible.
The best solution is to configure with a prefixdir:
configure --prefix=/usr/local/sourcenav
and then do make; make install
From thomas.heller@ion-tof.com Mon Aug 7 09:27:00 2000
From: thomas.heller@ion-tof.com (Thomas Heller)
Date: Mon, 07 Aug 2000 09:27:00 -0000
Subject: First questions...
References: <398EDF7D.5331B34B@redhat.com>
Message-ID: <020601c0008c$5761e9f0$4500a8c0@thomasnb>
> > It also installs a TON of executables in the main bin dir. Why not
> > have it install them in its own share/SN/bin dir and add the path
when
> > the main executable is loaded?
> >
> > What you are suggesting doesn't conform to the GNU directory layout. If
> > there are a lot of executables in the bin/ directory, perhaps we need to
> > look at moving them to libexec if they aren't programs that a user would
> > invoke directly themselves.
>
> The problem with that is that making a libexec directory makes it really
hard to
> launch from Windows. It makes it necessary to put some of the sourcenav
> directories on the path. It is not really feasible.
Would not a key in the registry under
"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths"
work?
Thomas
From spolk@redhat.com Mon Aug 7 10:58:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Mon, 07 Aug 2000 10:58:00 -0000
Subject: First questions...
References: <398EDF7D.5331B34B@redhat.com> <020601c0008c$5761e9f0$4500a8c0@thomasnb>
Message-ID: <4.2.0.58.20000807105756.00cc6900@pop.cygnus.com>
At 06:27 PM 8/7/00 +0200, Thomas Heller wrote:
> > > It also installs a TON of executables in the main bin dir. Why not
> > > have it install them in its own share/SN/bin dir and add the path
>when
> > > the main executable is loaded?
> > >
> > > What you are suggesting doesn't conform to the GNU directory layout. If
> > > there are a lot of executables in the bin/ directory, perhaps we need to
> > > look at moving them to libexec if they aren't programs that a user would
> > > invoke directly themselves.
> >
> > The problem with that is that making a libexec directory makes it really
>hard to
> > launch from Windows. It makes it necessary to put some of the sourcenav
> > directories on the path. It is not really feasible.
>Would not a key in the registry under
>"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths"
>work?
>
>Thomas
The only registry entries that SN makes right now are setting up the Start
Menu. The actual exe does not depend on any path or registry values. This
means you can move SN around to anywhere on your file system.
In general, after 12 years of Windows programming, I really want all of my
.exe and .dll files in the same directory. It just makes things so much easier.
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From Helmut.Herrmann@aeon.de Mon Aug 7 11:01:00 2000
From: Helmut.Herrmann@aeon.de (Helmut Herrmann)
Date: Mon, 07 Aug 2000 11:01:00 -0000
Subject: Invalid command "sn_tcl_tk_init"
References:
Message-ID: <003b01c00099$b778fdd0$0d20a8c0@double>
From: Mo DeJong
> > Hello,
> >
> > I am new to this list. As I had difficulties in starting Source
> > Navigator logged in as normal user after having it installed as root
(on
> > Linux SuSE 6.4) I searched the archive. I concluded from the
> > contributions that one of the available patches fixes the problem.
Thus,
> > I tried those patches but without success. Could anybody point me
into
> > the right direction and tell me the actual status?
> >
> > Thanks,
> > Helmut
>
> You applied this patch?
>
ftp://sources.redhat.com/pub/sourcenav/releases/patches/0001-spolk-00072
5-patch
>
> That should have fixed it. This is the part that fixes that
> problem.
>
> Index: snavigator/gui/Makefile.am
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/snavigator/gui/Makefile.am,v
> retrieving revision 1.27.2.2.2.3.4.4
> diff -c -2 -p -r1.27.2.2.2.3.4.4 Makefile.am
> *** snavigator/gui/Makefile.am 2000/02/11 23:48:34
1.27.2.2.2.3.4.4
> --- snavigator/gui/Makefile.am 2000/07/25 19:19:57
> *************** tclIndex: $(prog_DATA)
> *** 43,47 ****
> here=`pwd`; cd $(srcdir) && \
> rm -f tclIndex && \
> ! echo "source $(ITCL_MKINDEX_DIR)/itcl_mkindex.tcl;
itcl_mkindex
> $(SN_GUI_DIR)" | @ITCL_SH@
>
> all-local: tclIndex
> --- 43,48 ----
> here=`pwd`; cd $(srcdir) && \
> rm -f tclIndex && \
> ! echo "source $(ITCL_MKINDEX_DIR)/itcl_mkindex.tcl;
itcl_mkindex
> $(SN_GUI_DIR)" | @ITCL_SH@ && \
> ! chmod 644 tclIndex
>
>
> You just need a chmod.
>
> Mo DeJong
> Red Hat Inc
Thank you for your reply. Applying this patch was exactly what I did.
The Makefile was changed accordingly and after installation the files
such as sninit.tcl were owned by root and had the permissions 644.
However, I still got this error message:
Error: invalid command name "sn_tcl_tk_init"
I have no idea why.
(That is why at the moment I have SN created and installed as normal
user.)
Helmut
AEON
helmut.herrmann@aeon.de
From spolk@redhat.com Mon Aug 7 11:02:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Mon, 07 Aug 2000 11:02:00 -0000
Subject: First questions...
References: <200008051239.OAA24554@topaze.ecf.teradyne.com>
Message-ID: <4.2.0.58.20000807110312.00cc2770@pop.cygnus.com>
>
>2. Why on earth is tcl/tk 8.1 _included_ in the sourceball??!!??
>/sup/build/SN451 > du -s t*8.1
>13846 tcl8.1
>10195 tk8.1
>
>I won't do a 'make install' until I'm sure it won't try to overwrite my
>current 8.3.1 installation. Can someone please explain why its included?
One thing that people can do to minimize the amount of files copied is to do:
configure
make all-snavigator
make install-snavigator
This will only install the bare minimum of files necessary for Tcl, Tk, Tix
and itcl to work.
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From bje@redhat.com Mon Aug 7 17:13:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Mon, 07 Aug 2000 17:13:00 -0000
Subject: First questions...
References: <398EDF7D.5331B34B@redhat.com>
Message-ID:
> What you are suggesting doesn't conform to the GNU directory layout. If
> there are a lot of executables in the bin/ directory, perhaps we need to
> look at moving them to libexec if they aren't programs that a user would
> invoke directly themselves.
The problem with that is that making a libexec directory makes it
really hard to launch from Windows. It makes it necessary to put some
of the sourcenav directories on the path. It is not really feasible.
Many packages that use `configure' aren't as ambitious as Source-Nav with
respect to relocation. They use $prefix everywhere to make it possible to
track down supporting files, programs, etc. The expectation is that if you
need to relocate it to somewhere else, you can just build it again from the
source.
If S-N took this approach, wouldn't it be possible to run supporting
programs by providing their absolute path? Surely Windows could find them
then?
Ben
From mdejong@cygnus.com Tue Aug 8 11:52:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Tue, 08 Aug 2000 11:52:00 -0000
Subject: A nice Tk article that mentions Source-Navigator
Message-ID:
Here is cool article about Tk, it mentions SN very briefly.
http://www.sunworld.com/sunworldonline/swol-08-2000/swol-0804-tk.html
Mo DeJong
Red Hat Inc
From bje@redhat.com Tue Aug 8 14:43:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Tue, 08 Aug 2000 14:43:00 -0000
Subject: Xref-ing non used symbols
References: <5D2A198567EED311BD0F009027A25C872EF2B9@SRVMAIL-ANN>
Message-ID:
hyper requires some environment, too---the script snavigator show what
it needs. Here's a suitable "hyper" script (hacked from snavigator)
which you could put (after changing /usr/local/sn to whatever you
used) suitably earlier in your path:
A lot of this confusion would be solved if the S-N extensions for Tcl were a
loadable module. Then these scripts could "require" the hyper package.
It's currently not done this way. This is something strange. :-)
Ben
From tshead@k-3d.com Tue Aug 8 14:49:00 2000
From: tshead@k-3d.com (Timothy M. Shead)
Date: Tue, 08 Aug 2000 14:49:00 -0000
Subject: Win32 binaries?
References:
Message-ID: <001101c00182$e0a09350$7e01a8c0@hq.avulet.com>
I'm a big fan of SN and use it extensively under Linux. Now I'm having to
do some Windoze stuff at work, and would like to stick with a familiar
environment. I've had nothing but trouble trying to build it under Win32,
and don't have any more time to spend - are there any Win32 binaries
floating around? Even better, is there anyone who has successfully built it
with cygwin/MSVC 6?
Regards,
Timothy M. Shead
tshead@k-3d.com
From broonie@tardis.ed.ac.uk Tue Aug 8 14:50:00 2000
From: broonie@tardis.ed.ac.uk (Mark Brown)
Date: Tue, 08 Aug 2000 14:50:00 -0000
Subject: First questions...
References: <398EDF7D.5331B34B@redhat.com> <020601c0008c$5761e9f0$4500a8c0@thomasnb> <4.2.0.58.20000807105756.00cc6900@pop.cygnus.com>
Message-ID: <20000808224358.A30160@tardis.ed.ac.uk>
On Mon, Aug 07, 2000 at 10:59:51AM -0700, Syd Polk wrote:
> In general, after 12 years of Windows programming, I really want all of my
> .exe and .dll files in the same directory. It just makes things so much easier.
Would it be possible to do things differently on Windows? Looking at
the source I'm guessing not, but it looks like the main problems are
the differences in SOP between Windows and Unix. It's normal and
expected for Windows pacakges to do a lot of what you're doing, but on
Unix it's not generally considered acceptable to do things in the same
way.
Incidentally, there seems to be a dependancy problem with building the
Fortran parser - a parallel build failed for me earlier on today because
something tried to build using the output of yacc before yacc had been
run. Unfortuntately, I lost the log and automake is a little too opaque
for me right now.
--
Mark Brown mailto:broonie@tardis.ed.ac.uk (Trying to avoid grumpiness)
http://www.tardis.ed.ac.uk/~broonie/
EUFS http://www.eusa.ed.ac.uk/societies/filmsoc/
From spolk@redhat.com Tue Aug 8 14:59:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Tue, 08 Aug 2000 14:59:00 -0000
Subject: Win32 binaries?
References: <001101c00182$e0a09350$7e01a8c0@hq.avulet.com>
Message-ID: <4.2.0.58.20000808150030.00cc0cb0@pop.cygnus.com>
At 02:51 PM 8/8/00 -0700, Timothy M. Shead wrote:
>I'm a big fan of SN and use it extensively under Linux. Now I'm having to
>do some Windoze stuff at work, and would like to stick with a familiar
>environment. I've had nothing but trouble trying to build it under Win32,
>and don't have any more time to spend - are there any Win32 binaries
>floating around? Even better, is there anyone who has successfully built it
>with cygwin/MSVC 6?
>
>Regards,
>Timothy M. Shead
>tshead@k-3d.com
The binaries live at
ftp://sources.redhat.com/pub/sourcenav/releases/binaries , or the equivalent
mirror.
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From spolk@redhat.com Tue Aug 8 15:01:00 2000
From: spolk@redhat.com (Syd Polk)
Date: Tue, 08 Aug 2000 15:01:00 -0000
Subject: First questions...
References: <4.2.0.58.20000807105756.00cc6900@pop.cygnus.com> <398EDF7D.5331B34B@redhat.com> <020601c0008c$5761e9f0$4500a8c0@thomasnb> <20000808224358.A30160@tardis.ed.ac.uk>
Message-ID: <4.2.0.58.20000808150129.00caf800@pop.cygnus.com>
At 10:43 PM 8/8/00 +0100, Mark Brown wrote:
>On Mon, Aug 07, 2000 at 10:59:51AM -0700, Syd Polk wrote:
>
> > In general, after 12 years of Windows programming, I really want all of my
> > .exe and .dll files in the same directory. It just makes things so much
> easier.
>
>Would it be possible to do things differently on Windows? Looking at
>the source I'm guessing not, but it looks like the main problems are
>the differences in SOP between Windows and Unix. It's normal and
>expected for Windows pacakges to do a lot of what you're doing, but on
>Unix it's not generally considered acceptable to do things in the same
>way.
This is a lot of work with configure and make. If I get some time, I might
get motivated, but I doubt it.
What we will do short term is make the default make install dir to be
/usr/local/sourcenav.
>Incidentally, there seems to be a dependancy problem with building the
>Fortran parser - a parallel build failed for me earlier on today because
>something tried to build using the output of yacc before yacc had been
>run. Unfortuntately, I lost the log and automake is a little too opaque
>for me right now.
We don't build using a parallel system. There might be something wrong, but
I think those parts of the Makefile.am are fairly straightfoward.
>--
>Mark Brown mailto:broonie@tardis.ed.ac.uk (Trying to avoid grumpiness)
> http://www.tardis.ed.ac.uk/~broonie/
>EUFS http://www.eusa.ed.ac.uk/societies/filmsoc/
Syd Polk spolk@redhat.com
Engineering Manager +1 415 777 9810 x 241
Red Hat, Inc.
From clayton@shore.net Wed Aug 9 17:14:00 2000
From: clayton@shore.net (Mark Clayton)
Date: Wed, 09 Aug 2000 17:14:00 -0000
Subject: diff and block select
Message-ID: <00080920225001.25131@eiger.clayton.prv>
I was trying out SN over the weekend. Two things I would like
to suggest are a colorized gui diff, and a block select. Maybe
I mised these and they are already there somewhere?
Also, is there a way to add my own command line tools and have
the stdout captured in one of the SN windows?
Thanks,
Mark
--
email: clayton@shore.net
From mdejong@cygnus.com Wed Aug 9 17:19:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Wed, 09 Aug 2000 17:19:00 -0000
Subject: diff and block select
References: <00080920225001.25131@eiger.clayton.prv>
Message-ID:
On Wed, 9 Aug 2000, Mark Clayton wrote:
> I was trying out SN over the weekend. Two things I would like
> to suggest are a colorized gui diff, and a block select. Maybe
> I mised these and they are already there somewhere?
You can do a "colorized gui diff" of files in the revision
control editor or from the menu item Tools -> Revision Contorol
-> Compare Revisions.
Perhaps you mean comparing two files, you can do that but it
would not be all that hard to add such a feature.
> Also, is there a way to add my own command line tools and have
> the stdout captured in one of the SN windows?
I am not sure what "command line tools" you are talking
about. You can add your own compiler tool chain. If you
are talking about running something during the build,
you can just type something into the "Build Command"
input box and hit enter.
Mo DeJong
Red Hat Inc
From nickb@bigpond.net.au Thu Aug 10 02:12:00 2000
From: nickb@bigpond.net.au (nickb@bigpond.net.au)
Date: Thu, 10 Aug 2000 02:12:00 -0000
Subject: No RPMsfor source navigator!!
Message-ID: <399271F9.FB696FF6@bigpond.net.au>
Hi,
I am very very surprised to see a Red Hat project getting
distributed in a tarball! Whats going on? Why haven't you got RPMs or at
least a .spec file so I can compile my own?
Nick Blievers (RHCE, woohoo! :) )
From mdejong@cygnus.com Thu Aug 10 02:18:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 10 Aug 2000 02:18:00 -0000
Subject: No RPMsfor source navigator!!
References: <399271F9.FB696FF6@bigpond.net.au>
Message-ID:
On Thu, 10 Aug 2000 nickb@bigpond.net.au wrote:
> Hi,
> I am very very surprised to see a Red Hat project getting
> distributed in a tarball! Whats going on? Why haven't you got RPMs or at
> least a .spec file so I can compile my own?
Back in my day, we did not have no fancy SRPM files.
All we had was tar, and we liked it!
There will be RPMs later, for now you just need to run:
tar -xzvf ...tar.gz
cd SN451
./configure --prefix=/usr/local/sourcenav
make install
Mo DeJong
Red Hat Inc
From bje@redhat.com Thu Aug 10 03:57:00 2000
From: bje@redhat.com (Ben Elliston)
Date: Thu, 10 Aug 2000 03:57:00 -0000
Subject: No RPMsfor source navigator!!
References: <399271F9.FB696FF6@bigpond.net.au>
Message-ID:
I am very very surprised to see a Red Hat project getting
distributed in a tarball! Whats going on? Why haven't you got RPMs or
at least a .spec file so I can compile my own?
There is a .spec file in the source tree, if you'd like to play with that.
It's in snavigator/misc/tools/sn.spec.
Ben
From kuri@makino.cc.tohoku.ac.jp Thu Aug 10 04:15:00 2000
From: kuri@makino.cc.tohoku.ac.jp (kuri@makino.cc.tohoku.ac.jp)
Date: Thu, 10 Aug 2000 04:15:00 -0000
Subject: Can't Check-In
Message-ID: <20000810.201325.71081334.kuri@makino.cc.tohoku.ac.jp>
when I use "Revision Control Editor" with RCS,
I can't Check-In files.
I think "&&" must be "||" in attached file.
============================================================
OHKAWA Yuichi (kuri@makino.cc.tohoku.ac.jp)
Graduate School of Information Sciences,TOHOKU University.
============================================================
From reinhard.griech@pcm.endress.com Thu Aug 10 04:17:00 2000
From: reinhard.griech@pcm.endress.com (reinhard.griech@pcm.endress.com)
Date: Thu, 10 Aug 2000 04:17:00 -0000
Subject: Win32 & Cygnus-GCC: how to compile abrowser from source distribution?
Message-ID:
Hi,
I'm trying to create my own abrowser. Problem is to compile (more
precisely: link) the abrowser example from the source distribution.
Looking at the Makefile one will recognize the following:
LIBS=-L${SDK}/lib -lm -ldl -lfl -lsnptools -ldbutils -lpafdb -ltcl8.1
-lutils
There are no such libtcl8.1(I suspect this is a typo and should read as
tcl81), also there is no libdl.a. Also the OUT should be modified, so one
will get an abrowser.exe.
Modifying the LIBS-line still results in the following messages:
hardy://c/Programme/Cygnus/SN451/share/sdk/parsers/examples/assembly> make
TARGET=linux-i486-elf
gcc -o abrowser.exe abrowser.o -L../../../../sdk/lib -lm -lfl -lsnptools
-ldbutils -lpafdb -ltcl81 -lutils
../../../../sdk/lib/libsnptools.a(snptools.obj.b): In function `sn_getopt':
w:\work\cygnus\sn-:35: undefined reference to `_assert'
../../../../sdk/lib/libsnptools.a(snptools.obj.b): In function
`sn_process_options':
w:\work\cygnus\sn-:106: undefined reference to `_assert'
../../../../sdk/lib/libsnptools.a(snptools.obj.b): In function `sn_error':
w:\work\cygnus\sn-:4: undefined reference to `_iob'
w:\work\cygnus\sn-:7: undefined reference to `_iob'
:
BTW there is no w:\work on my system...
Thanks for any help.
Hardy
From steve.michel@sdrc.com Thu Aug 10 12:20:00 2000
From: steve.michel@sdrc.com (Steve Michel)
Date: Thu, 10 Aug 2000 12:20:00 -0000
Subject: Source Navigator old-n-future status ?
Message-ID: <39930046.A8A7F6F@sdrc.com>
Hi,
What is the status of the Source Navigator product now ???
Has an SGI port been carried forward to v4.5 ? (we still have v4.1 of this)
Is NT supported under the new GPL release ?
Thanks,
Steve Michel
> I came across the following articles today:
> http://sources.redhat.com/sourcenav/
> http://www.redhat.com/about/cygnus_1999/
>
> When I viewed the PowerSoft page, I was surprised to find that the only product now mentioned was Krakatau.
> (It seems not too long ago I was there and saw several, including SourceNavigator, but then time flies...)
> When I attempt to view the www.cygnus.com page, I'm taken directly to www.redhat.com
>
> We first acquired SN v4.1 for SGI mid '1998.
> Since then I've had no announcements or other news, (updates, patches, etc.).
>
From mdejong@cygnus.com Thu Aug 10 12:30:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 10 Aug 2000 12:30:00 -0000
Subject: Source Navigator old-n-future status ?
References: <39930046.A8A7F6F@sdrc.com>
Message-ID:
On Thu, 10 Aug 2000, Steve Michel wrote:
> Hi,
>
> What is the status of the Source Navigator product now ???
The answer is 42. (Not for the Douglas Adams impaired)
> Has an SGI port been carried forward to v4.5 ? (we still have v4.1 of this)
>
> Is NT supported under the new GPL release ?
It works on NT, and it should not be hard to compile it under IRIX.
Just download the source and run ./configure ; make.
Mo DeJong
Red Hat Inc
From irox@redhat.com Thu Aug 10 12:42:00 2000
From: irox@redhat.com (Ian Roxborough)
Date: Thu, 10 Aug 2000 12:42:00 -0000
Subject: Development version...
Message-ID: <200008101941.MAA06905@v-172-16-1-212.soma.redhat.com>
Hi,
how many people have tried/are using the development
version?
The development version tarball is way out of date now
so I was thinking of spinning out a new development version
since we are nearing the stage where we need lots of
testing.
Anybody interesting in a new development version?
Ian.
From mdejong@cygnus.com Thu Aug 10 12:52:00 2000
From: mdejong@cygnus.com (Mo DeJong)
Date: Thu, 10 Aug 2000 12:52:00 -0000
Subject: Development version...
References: <200008101941.MAA06905@v-172-16-1-212.soma.redhat.com>
Message-ID:
On Thu, 10 Aug 2000, Ian Roxborough wrote:
> Hi,
>
> how many people have tried/are using the development
> version?
>
> The development version tarball is way out of date now
> so I was thinking of spinning out a new development version
> since we are nearing the stage where we need lots of
> testing.
I don't think we have a snapshot of the development
version up yet. The snapshot dir is empty.
ftp://ftp.freesoftware.com/pub/sourceware/sourcenav/snapshots/
Mo DeJong
Red Hat Inc
From kaa@comail.ru Thu Aug 10 13:37:00 2000
From: kaa@comail.ru (Artem Khodush)
Date: Thu, 10 Aug 2000 13:37:00 -0000
Subject: Development version...
References: <200008101941.MAA06905@v-172-16-1-212.soma.redhat.com>
Message-ID: <005101c0030b$c6d9f3f0$1306f8d4@duma.gov.ru>
Ian Roxborough wrote:
> how many people have tried/are using the development
> version?
No one outside RedHat/Cygnus, I guess. There was
no snapshots on the sourceware ftp site.
>
> The development version tarball is way out of date now
> so I was thinking of spinning out a new development version
> since we are nearing the stage where we need lots of
> testing.
>
> Anybody interesting in a new development version?
>
Yes, that would be great.
Best regards,
Artem.
From ashutosh.p.sanzgiri@opbu.xerox.com Thu Aug 10 16:52:00 2000
From: ashutosh.p.sanzgiri@opbu.xerox.com (Sanzgiri, Ashutosh P)
Date: Thu, 10 Aug 2000 16:52:00 -0000
Subject: tar error in Source Navigator 4.51 archive
Message-ID: <8F8E1FADC7E8D3119C5100508B8B885E12B2DD@UsaWvMS02.opbu.xerox.com>
Hi,
I get a directory checksum error when I try to untar the Source Navigator
4.51 archive.
I downloaded the gzipped file from your web site and also from
freesoftware.com. I encountered
the same problem with both downloads.
Thanks,
Ashutosh
From irox@redhat.com Thu Aug 10 17:04:00 2000
From: irox@redhat.com (Ian Roxborough)
Date: Thu, 10 Aug 2000 17:04:00 -0000
Subject: tar error in Source Navigator 4.51 archive
Message-ID: <200008110002.RAA07192@v-172-16-1-212.soma.redhat.com>
Hi,
Anybody else having this problem?
(If you are using ftp in binary mode?)
Ian.
On Thu, 10 Aug 2000, Sanzgiri, Ashutosh P wrote:
> Date: Thu, 10 Aug 2000 16:47:31 -0700
> To: "'sourcenav@sources.redhat.com'"