From: Gautier write-only on
Hello,
I have an idea about how to patch GNAT on this.
Indeed, there is already a fast Stream exchangein GNAT, only for the
{Wide_}String types.
So, at the end of Find_Stream_Subprogram, exp_attr.adb, I would add
something like

if Is_Array_Type(Typ) and then
Is_Bit_Packed_Array (Typ) and then
Component_Size (Typ) = 8 and then
then
Comp_Typ:= Component_Type (Typ);
if Is_Modular_Integer_Type(Comp_Typ) and then
[modulus ??] (Comp_Typ) = 2**8
then
[ go ahead with some unchecked conversion to String ]
return [the right thing];
end if;
end if;

Now, I have no experience with building GNAT, from the GCC tree.
Would someone like to help ?
Or is it easy to on Windows (currently, no Linux available on my
side) ?
TIA
_________________________________________________________
Gautier's Ada programming -- http://sf.net/users/gdemont/
NB: For a direct answer, e-mail address on the Web site!
From: Ludovic Brenta on
Gautier wrote on comp.lang.ada:
> Now, I have no experience with building GNAT, from the GCC tree.
> Would someone like to help ?
> Or is it easy to on Windows (currently, no Linux available on my
> side) ?
> TIA

http://goodbye-microsoft.com/ :)

*ducks and hides*

--
Ludovic Brenta.
From: Gautier write-only on
> I have an idea about how to patch GNAT on this.

Someone might be quicker than me in doing that...
Just in case, another good place (or even a better one) for inserting
the shortcut would be:
Build_Array_Read_Write_Procedure in exp_strm.adb .
Multi-dimensional arrays could be considered there as well, if they
comply of course.
_________________________________________________________
Gautier's Ada programming -- http://sf.net/users/gdemont/
NB: For a direct answer, e-mail address on the Web site!