<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/xparam/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/xparam/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/xparam/bugs/</id><updated>2003-12-18T21:12:43Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>Passes literal instead of value to ctor expecting string</title><link href="https://sourceforge.net/p/xparam/bugs/15/" rel="alternate"/><published>2003-12-18T21:12:43Z</published><updated>2003-12-18T21:12:43Z</updated><author><name>Dan Ingold</name><uri>https://sourceforge.net/u/daningold/</uri></author><id>https://sourceforge.net8936abeb5cd84a5fb08694c897af082c60e9b08a</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Given a class whose ctor takes a string, xParam does &lt;br /&gt;
not appear to correctly init the class with a literal (i.e., &lt;br /&gt;
constant) parameter.  xParam passes the name of the &lt;br /&gt;
constant to the ctor, rather than its value.  For &lt;br /&gt;
example, the attached test program prints&lt;/p&gt;
&lt;p&gt;Test contains &amp;amp;quot;INIT&amp;amp;quot;&lt;/p&gt;
&lt;p&gt;rather than&lt;/p&gt;
&lt;p&gt;Test contains &amp;amp;quot;xyzzy&amp;amp;quot;&lt;/p&gt;
&lt;p&gt;I assume this occurs because under the relaxed syntax &lt;br /&gt;
rules, xParam interprets INIT as a string instead of a &lt;br /&gt;
constant.   Shouldn't xParam look for the token in the &lt;br /&gt;
symbol table before presuming it is a string? &lt;/p&gt;
&lt;p&gt;If I am missing some fundamental concept here, please &lt;br /&gt;
let me know.  Thank you.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;
Dan &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>oParamPtrVar stores reference to temporary</title><link href="https://sourceforge.net/p/xparam/bugs/14/" rel="alternate"/><published>2003-08-29T18:33:57Z</published><updated>2003-08-29T18:33:57Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.nete6e7718104acc13a0a8eb7091defc02cdfbc998e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The oParamPtrVar function has a const T* const&amp;amp;amp;&lt;br /&gt;
parameter, and the object it constructs stores a copy&lt;br /&gt;
of the reference. When called with a&lt;br /&gt;
pointer-to-non-const (such as in tests 6 and 8), type&lt;br /&gt;
conversion is needed and a temporary is used. When this&lt;br /&gt;
happens, the ParamPtrVar object holds a reference to&lt;br /&gt;
the temporary, and not to the original pointer. This&lt;br /&gt;
can be problematic because the temporary may go away&lt;br /&gt;
before the ParamPtrVar needs to access it.&lt;/p&gt;
&lt;p&gt;One way to fix is is to add an overload for&lt;br /&gt;
oParamPtrVar so that no conversion is needed for these&lt;br /&gt;
cases:&lt;/p&gt;
&lt;p&gt;template&amp;amp;lt;class T&amp;amp;gt;&lt;br /&gt;
inline Handle&amp;amp;lt;Param&amp;amp;gt; oParamPtrVar(T* const&amp;amp;amp;&lt;br /&gt;
ptr_var, const std::string&amp;amp;amp; s)&lt;br /&gt;
{&lt;br /&gt;
T*&amp;amp;amp; ncptr_var=const_cast&amp;amp;lt;T*&amp;amp;amp;&amp;amp;gt;(ptr_var);&lt;br /&gt;
return Handle&amp;amp;lt;Param&amp;amp;gt;(new&lt;br /&gt;
ParamPtrVar&amp;amp;lt;T&amp;amp;gt;(ncptr_var,s,false,true,Handle&amp;amp;lt;ValueSource&amp;amp;gt;()));&lt;br /&gt;
}&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>oParamPtrVar stores reference to temporary</title><link href="https://sourceforge.net/p/xparam/bugs/13/" rel="alternate"/><published>2003-08-29T18:21:11Z</published><updated>2003-08-29T18:21:11Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.neta1b2cb961c86b2da5ef85fdadc47a009eb4632aa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The oParamPtrVar function has a const T* const&amp;amp;amp;&lt;br /&gt;
parameter, and the object it constructs stores a copy&lt;br /&gt;
of the reference. When called with a&lt;br /&gt;
pointer-to-non-const (such as in tests 6 and 8), type&lt;br /&gt;
conversion is needed and a temporary is used. When this&lt;br /&gt;
happens, the ParamPtrVar object holds a reference to&lt;br /&gt;
the temporary, and not to the original pointer. This&lt;br /&gt;
can be problematic because the temporary may go away&lt;br /&gt;
before the ParamPtrVar needs to access it.&lt;/p&gt;
&lt;p&gt;One way to fix is is to add an overload for&lt;br /&gt;
oParamPtrVar so that no conversion is needed for these&lt;br /&gt;
cases:&lt;/p&gt;
&lt;p&gt;template&amp;amp;lt;class T&amp;amp;gt;&lt;br /&gt;
inline Handle&amp;amp;lt;Param&amp;amp;gt; oParamPtrVar(T* const&amp;amp;amp;&lt;br /&gt;
ptr_var, const std::string&amp;amp;amp; s)&lt;br /&gt;
{&lt;br /&gt;
T*&amp;amp;amp; ncptr_var=const_cast&amp;amp;lt;T*&amp;amp;amp;&amp;amp;gt;(ptr_var);&lt;br /&gt;
return Handle&amp;amp;lt;Param&amp;amp;gt;(new&lt;br /&gt;
ParamPtrVar&amp;amp;lt;T&amp;amp;gt;(ncptr_var,s,false,true,Handle&amp;amp;lt;ValueSource&amp;amp;gt;()));&lt;br /&gt;
}&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>unqualified calls to push_back and dependent name lookup</title><link href="https://sourceforge.net/p/xparam/bugs/12/" rel="alternate"/><published>2003-08-29T18:11:38Z</published><updated>2003-08-29T18:11:38Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net3019278eb27508a4da3a4cc714f5378afdd1d389</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The three calls to vector's push_back from&lt;br /&gt;
lib/xparam/xp_hvl.h&lt;br /&gt;
and the two in&lt;br /&gt;
lib/xparam/xp_typed_value_map.h&lt;br /&gt;
are not found when a compiler is using dependent name&lt;br /&gt;
lookup.&lt;/p&gt;
&lt;p&gt;An easy way to fix these is to qualify the calls with&lt;br /&gt;
`this-&amp;amp;gt;':&lt;/p&gt;
&lt;p&gt;-              push_back( MapItem(key_handle,val_handle) );&lt;br /&gt;
+              this-&amp;amp;gt;push_back(&lt;br /&gt;
MapItem(key_handle,val_handle) );&lt;/p&gt;
&lt;p&gt;(and the same for the other four).&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html" rel="nofollow"&gt;http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html&lt;/a&gt; for&lt;br /&gt;
more information about dependent name lookup.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>spurious ^M in source</title><link href="https://sourceforge.net/p/xparam/bugs/11/" rel="alternate"/><published>2003-08-29T18:00:44Z</published><updated>2003-08-29T18:00:44Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net4025b6ed90d8664dd16ce6b740366a43731a942d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The source file lib/src_include/xParamParser.hpp has a&lt;br /&gt;
spurious ^M character on line 49. &lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>xparam doesn't compile under AIX</title><link href="https://sourceforge.net/p/xparam/bugs/10/" rel="alternate"/><published>2003-02-18T08:56:20Z</published><updated>2003-02-18T08:56:20Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net7dfc313ac97c814735c17d25663613ad2778bed6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi , &lt;br /&gt;
I had a problem to compile the xparam under AIX.&lt;br /&gt;
in order to compile I did the following steps:&lt;br /&gt;
1. changed the function :&lt;br /&gt;
int file_selector(const struct dirent* my_dirent)&lt;br /&gt;
to&lt;br /&gt;
int file_selector(struct dirent* my_dirent)&lt;br /&gt;
2. linkage problem ( ar failed no such file or directory)&lt;br /&gt;
create a link  from &amp;amp;lt;PATH&amp;amp;gt;/lib/lib/.libs to &amp;amp;lt;PATH&amp;amp;gt;/lib/.libs&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>`-' in option name prints WEIRD error</title><link href="https://sourceforge.net/p/xparam/bugs/9/" rel="alternate"/><published>2002-01-28T16:55:01Z</published><updated>2002-01-28T16:55:01Z</updated><author><name>Ariel Scolnicov</name><uri>https://sourceforge.net/u/ariels/</uri></author><id>https://sourceforge.net957b43f39a034e9db3626c52303548441f2d3376</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I had an iParamPtrVar which looked like this:&lt;/p&gt;
&lt;p&gt;ps &amp;amp;lt;&amp;amp;lt; iParamPtrVar(xyz_data,   &amp;amp;quot;xyz-data  ! XYZ&lt;br /&gt;
data file&amp;amp;quot;);&lt;/p&gt;
&lt;p&gt;(no, it's not really called &amp;amp;quot;XYZ&amp;amp;quot;, I've changed that&lt;br /&gt;
bit). The type of xyz_data is correctly registered.&lt;/p&gt;
&lt;p&gt;At run-time this gives me an error message &amp;amp;quot;'!'&lt;br /&gt;
expected before description in xyz-data   ! XYZ data&lt;br /&gt;
file&amp;amp;quot;.  This error message is very misleading. Perhaps&lt;br /&gt;
a `-' should be special only if preceded by whitespace?&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>segfaults using gcc 3</title><link href="https://sourceforge.net/p/xparam/bugs/8/" rel="alternate"/><published>2002-01-23T15:08:31Z</published><updated>2002-01-23T15:08:31Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net4cd5b256b808878da170e991e5658eb9349249f0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I tried building xparam 1.11 using a gcc 3.02 &lt;br /&gt;
compiler with the new libstdc++ under redhat 7.2 with &lt;br /&gt;
a gcc 3.02 from a earlier rawhide release. The build &lt;br /&gt;
was ok.&lt;/p&gt;
&lt;p&gt;But if I try to run any program (e.g. the included &lt;br /&gt;
simple-example) linked with it I get a segfault &lt;br /&gt;
before the first line of the program is accessed.&lt;br /&gt;
It looks like it is within the initialization of &lt;br /&gt;
xparam.&lt;/p&gt;
&lt;p&gt;Both programs are compiled with the same compiler and &lt;br /&gt;
libstdc++ versions, no shared library conflicts. The &lt;br /&gt;
compiler/libstdc++ works fine and is compiling dozens &lt;br /&gt;
of c++ programs every day.&lt;/p&gt;
&lt;p&gt;This is the backtrace:&lt;/p&gt;
&lt;p&gt;(gdb) bt&lt;br /&gt;
#0  0x4002c1ef in ?? ()&lt;br /&gt;
#1  0x401d231d in &lt;br /&gt;
xParam_internal::Handle&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt; &lt;br /&gt;
xParam_internal::extract&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;(xParam_internal::Value &lt;br /&gt;
const&amp;amp;amp;, &lt;br /&gt;
xParam_internal::TypeTag&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;)&lt;br /&gt;
() from /usr/lib/libxparam.so.0&lt;br /&gt;
#2  0x40228e85 in &lt;br /&gt;
xParam_internal::CopyCtorCopier&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;::copy(xParam_internal::Value &lt;br /&gt;
const&amp;amp;amp;) const () from /usr/lib/libxparam.so.0&lt;br /&gt;
#3  0x40196de3 in &lt;br /&gt;
xParam_internal::Type::get_owned_copy(xParam_internal::Value &lt;br /&gt;
const&amp;amp;amp;) const ()&lt;br /&gt;
from /usr/lib/libxparam.so.0&lt;br /&gt;
#4  0x40227d71 in xParam_internal::UntypedNull* &lt;br /&gt;
xParam_internal::get_owned_copy&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;(xParam_internal::Value &lt;br /&gt;
const&amp;amp;amp;, &lt;br /&gt;
xParam_internal::TypeTag&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;) &lt;br /&gt;
()&lt;br /&gt;
from /usr/lib/libxparam.so.0&lt;br /&gt;
#5  0x40227dfe in xParam_internal::UntypedNull* &lt;br /&gt;
xParam_internal::get_copy_of&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;(xParam_internal::UntypedNull &lt;br /&gt;
const&amp;amp;amp;) () from /usr/lib/libxparam.so.0&lt;br /&gt;
#6  0x40227a5b in &lt;br /&gt;
xParam_internal::Handle&amp;amp;lt;xParam_internal::Value&amp;amp;gt; &lt;br /&gt;
xParam_internal::make_value_copy&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;(xParam_internal::UntypedNull &lt;br /&gt;
const&amp;amp;amp;) () from /usr/lib/libxparam.so.0&lt;br /&gt;
#7  0x40228a18 in &lt;br /&gt;
xParam_internal::Constant&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;::value() &lt;br /&gt;
const ()&lt;br /&gt;
from /usr/lib/libxparam.so.0&lt;br /&gt;
#8  0x40228724 in &lt;br /&gt;
xParam_internal::ConstantRegCommand&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;::do_registration() &lt;br /&gt;
const () from /usr/lib/libxparam.so.0&lt;br /&gt;
#9  0x40191dfa in &lt;br /&gt;
xParam_internal::RegistrationScheduler::check_dependencies() &lt;br /&gt;
()&lt;br /&gt;
from /usr/lib/libxparam.so.0&lt;br /&gt;
#10 0x40191b8c in &lt;br /&gt;
xParam_internal::RegistrationScheduler::add_command(xParam_internal::Handle&amp;amp;lt;xParam_internal::RegistrationCommand&amp;amp;gt;) &lt;br /&gt;
() from /usr/lib/libxparam.so.0&lt;br /&gt;
#11 0x40226d07 in void &lt;br /&gt;
xParam_internal::param_const&amp;amp;lt;xParam_internal::UntypedNull&amp;amp;gt;(std::string &lt;br /&gt;
const&amp;amp;amp;, xParam_internal::UntypedNull const&amp;amp;amp;) () from &lt;br /&gt;
/usr/lib/libxparam.so.0&lt;br /&gt;
#12 0x402265ef in (anonymous &lt;br /&gt;
namespace)::L61::GlobalCode::GlobalCode() () from &lt;br /&gt;
/usr/lib/libxparam.so.0&lt;br /&gt;
#13 0x40188361 in &lt;br /&gt;
__static_initialization_and_destruction_0(int, int) &lt;br /&gt;
() from /usr/lib/libxparam.so.0&lt;br /&gt;
#14 0x40188495 in &lt;br /&gt;
_GLOBAL__I__ZN44_GLOBAL__N_sources_xp_regtype_null.cppCggi0a3L6120global_code_instanceE&lt;br /&gt;
() from /usr/lib/libxparam.so.0&lt;br /&gt;
#15 0x401b37d5 in __do_global_ctors_aux () from &lt;br /&gt;
/usr/lib/libxparam.so.0&lt;br /&gt;
#16 0x4014c57a in _init () from &lt;br /&gt;
/usr/lib/libxparam.so.0&lt;br /&gt;
#17 0x4000d9e7 in _dl_init (main_map=0x40016998, &lt;br /&gt;
argc=1, argv=0xbffff9c4, env=0xbffff9cc) at &lt;br /&gt;
dl-init.c:70&lt;/p&gt;
&lt;p&gt;what can I do?&lt;/p&gt;
&lt;p&gt;If you need any additional informations, &lt;br /&gt;
programs/libraries/rpms just contact me.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Gerd&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Licensing unclear</title><link href="https://sourceforge.net/p/xparam/bugs/7/" rel="alternate"/><published>2002-01-08T09:04:35Z</published><updated>2002-01-08T09:04:35Z</updated><author><name>Anonymous</name><uri>https://sourceforge.net/u/userid-None/</uri></author><id>https://sourceforge.net5cd498db545a147665991bc5e85cf945fed3bb33</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The homepage &lt;a href="http://xparam.sourceforge.net/"&gt;http://xparam.sourceforge.net/&lt;/a&gt; states&lt;br /&gt;
(under &amp;amp;quot;Legal Info&amp;amp;quot;) that xparam uses a special&lt;br /&gt;
guile-like license that permits distribution of&lt;br /&gt;
programs linked against the (unmodified) library.&lt;br /&gt;
However, the xparam-1.11 distribution only contains the&lt;br /&gt;
file COPYING, which is the standard GPL and allows no&lt;br /&gt;
such use.&lt;/p&gt;
&lt;p&gt;The situation on xparam licensing needs to be cleared up...&lt;/p&gt;
&lt;p&gt;Many thanks,&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>parser eats extra character</title><link href="https://sourceforge.net/p/xparam/bugs/6/" rel="alternate"/><published>2001-12-07T15:16:08Z</published><updated>2001-12-07T15:16:08Z</updated><author><name>Ronnie Maor</name><uri>https://sourceforge.net/u/ronniemaor/</uri></author><id>https://sourceforge.neta6d6c01c29cdb81bf7f5478c9737c6588e766d65</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;the following &amp;amp;quot;code&amp;amp;quot;:&lt;/p&gt;
&lt;p&gt;istream &amp;amp;gt;&amp;amp;gt; Var(bool) &amp;amp;gt;&amp;amp;gt; Var(vector&amp;amp;lt;int&amp;amp;gt;)&lt;/p&gt;
&lt;p&gt;will fail with this input:&lt;/p&gt;
&lt;p&gt;true [1,2]&lt;/p&gt;
&lt;p&gt;because when the parser reads the bool, it also reads &lt;br /&gt;
the '[' as a lookahead, and then when it tries to &lt;br /&gt;
read the vector, the input&lt;/p&gt;
&lt;p&gt;1,2]&lt;/p&gt;
&lt;p&gt;isn't legal.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>