[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: kconfig_compiler4
From:       Allen Winter <winter () kde ! org>
Date:       2005-12-28 17:07:31
Message-ID: 200512281207.32588.winter () kde ! org
[Download RAW message or body]

On Monday 26 December 2005 14:32, Thomas Braxton wrote:
> On Saturday 24 December 2005 08:15, Allen Winter wrote:
> > Can you explain why the change?  kconfig_compiler already supported Int64
> > and UInt64 types so I don't understand the need for eliminating Int/UInt
> > types.  I think *adding* support for Int32/UInt32 may make some sense, but
> > removing Int/UInt doesn't seem necessary, nor optimal.
> > 
> > Regards,
> > Allen
> 
> There were three integer related Items ItemInt/ItemLong/ItemInt64 that were 
> reduced to two. ItemInt was renamed to ItemInt32 to be more specific about 
> the size. ItemLong was removed because it could be ambiguous as to what size 
> was wanted. When I proposed the change 
> http://lists.kde.org/?l=kde-core-devel&m=113458437319830&w=2
> I only got one response in 4 days 
> http://lists.kde.org/?l=kde-core-devel&m=113490619202799&w=2
> so I commited r489520.
> 
> 
> I see the options for kconfig_compiler as:
> 
> 1) add support for Int32/UInt32, don't remove Int/UInt
> - existing kcfg files work
> - generated code doesn't match the kcfg file, (U)Int items are changed to
> Item(U)Int32 in the generated code.
> - could remove Int/UInt before KDE4 is released, after all kcfg files are
> ported
> 
> 2) add support for Int32/UInt32, remove Int/UInt
> - *all* kcfg files will need to be ported, simply replace Int with Int32
> everywhere.
> - generated code will match the kcfg file.
> 
> 3) change KConfigSkeleton back to Item(U)Int instead of Item(U)Int32, use 
> q(u)int32 as the templated type so that it is implicitly a 32-bit type.
> - existing kcfg files work
> - generated code will match the kcfg file.
> 
> Any option works for me, I just haven't had time to ask the list which option 
> is wanted. Option #1 is a compromise between not breaking existing code and 
> being more explicit about the size of the item, if the kcfg files are 
> changed. Option #2 is the most far reaching, because all kcfg files will need 
> to be ported, but it is the most explicit about the size of the item. Option 
> #3 is the easiest, since Int has been used so far, it breaks the least code, 
> but is the least explicit about the size of the item. IMHO the API should 
> have been more explicit about the sizes of the integer items when it was 
> designed, we wouldn't have this question now. Now we either live with the 
> existing design or fix it. So, what does everyone think? I can commit for any 
> option today. What do I commit?
> 
> P.S. Options #1 & #2 require changes to kcfg.xsd, to allow the kcfg files to 
> be tested for validity, will this require a version change?
> 
Thomas,

How about if we eliminate (U)Int64?  Just use (U)Long types in *.kcfg files to mean \
"a really big integer" type.

I'm not sure why we should be specifying the number of bits of a configuration type.

Int types should eventually convert into the machine wordsize and Long types to the \
biggest integer you can get on the machine (which might be long long on some \
systems).

My 2cents,
Allen


-- 
Let's Keep the Political Talk Out of KDE PLEASE


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic