[Patches] PyMarshal_WriteLongToFile: writes 'long' or 32-bit
integer?
Greg Stein
gstein@lyra.org
Fri, 2 Jun 2000 15:26:21 -0700 (PDT)
On Fri, 2 Jun 2000, Trent Mick wrote:
> On Fri, Jun 02, 2000 at 09:45:25PM +0200, Peter Funk wrote:
>...
> > > 3. - change PyMarshal_WriteLongToFile to raise an exception if the long
> > > overflows a 32-bit range
> >
> > We should try to achieve the following goal: .pyc files should be portable
> > from 32 bit systems to 64 bit systems and vice versa. This means
> > always truncating to 32 bits and raising an exception, if an overflow
> > occurs.
> >
> Or offer PyMarshal_WriteInt32ToFile for import.c and import.c itself can do
> the overflow checking on the time stamp. That is the RIght THing(TM) IMO.
>
> Anyway, my question was intended to be more about the subtlety of marshal
> functions rather than the .pyc file headers. No question that the .pyc's
> should be portable.
I think Peter was referring to integers embedded in the marshalled code in
a .pyc, rather than the timestamp.
Basically: a marshalled string *must* be portable. That is effectively a
language definition.
I'm with Peter on this one: marshal.c should raise an exception if an
integer overflows the 32-bit value.
[ the app writer should use a Long for max portability ]
Cheers,
-g
--
Greg Stein, http://www.lyra.org/