[M3devel] Utypes.asLong / Utypes.assignOffT

Neels Janosch Hofmeyr neels at elego.de
Mon Jan 28 18:11:30 CET 2008


So, if I understand correctly, this should read

y := Utypes.asLong(x)      ==becomes==>   y := ORD(x);
x := Utypes.assignOffT(y)  ==becomes==>   x := VAL(y);

right?

Tony Hosking wrote:
> You will need to use VAL as I noted to handle the fact that off_t is 
> LONGINT on some targets and INTEGER on others.
>
> On Jan 28, 2008, at 11:35 AM, Neels Janosch Hofmeyr wrote:
>
>> Apparently, the answer to this is trivial. I found the missing 
>> functions in a CVS diff:
>>
>> -PROCEDURE asLong (val: off_t): long =
>> -  BEGIN
>> -    RETURN val;
>> -  END asLong;
>> -
>> -PROCEDURE assignOffT (VAR dest: off_t; src: long) =
>> -  BEGIN
>> -    dest := src;
>> -  END assignOffT;
>>
>> So, just replacing all occurences of these functions with direct 
>> assignments compiles without problems.
>> y := Utypes.asLong(x)      ==becomes==>   y := ORD(x);
>> x := Utypes.assignOffT(y)  ==becomes==>   x := y;
>>
>> Obviously, CVSup needs to be updated so that it compiles with the 
>> most recent CM3! The suplib still uses the obsoleted procedures 
>> asLong and assignOffT. Shall I write a mail to Mr. Polstra?
>>
>> Neels
>>
>> Neels Janosch Hofmeyr wrote:
>>> Hi,
>>>
>>> after some problems have been resolved, I still cannot figure out 
>>> these errors:
>>>
>>> ===> suplib
>>> --- building in LINUXLIBC6 ---
>>>
>>> new source -> compiling StatBufOffT64.m3
>>> "../src/StatBufOffT64.m3", line 40: unknown qualification '.' (asLong)
>>> "../src/StatBufOffT64.m3", line 45: unknown qualification '.' 
>>> (assignOffT)
>>>
>>> They are trying to access the procedures
>>>  Utypes.asLong
>>>  Utypes.assignOffT
>>>
>>> Apparently, Utypes.asLong(..) can simply be replaced by ORD(..). Is 
>>> this correct??
>>>
>>> Concerning assignOffT, the commit log speaks of a function called
>>>    PROCEDURE expandAssign(VAR dest: off_t; src: long)
>>> , but this function does not exist anywhere in the cm3 source tree 
>>> (grep -r expandAssign yielded no results).
>>>
>>>
>>> How do I fix this line in suplib/src/StatBufOffT64.m3 (ll.43-46)?
>>>
>>> PROCEDURE SetStatSize(VAR st: struct_stat; size: CARDINAL) =
>>>  BEGIN
>>>    Utypes.assignOffT(st.st_size, size);
>>>  END SetStatSize;
>>>
>>> "../src/StatBufOffT64.m3", line 45: unknown qualification '.' 
>>> (assignOffT)
>>>
>>>
>>> Thanks
>>>
>>
>> -- 
>> Neels Janosch Hofmeyr
>> Software Developer
>>
>> neels at elego.de
>> Public Key: http://binarchy.net/neels/neels.hofmeyr.public.key.asc
>>
>> elego Software Solutions GmbH           http://www.elegosoft.com
>> Gustav-Meyer-Allee 25, Gebäude 12       HRB 77719
>> 13355 Berlin, Germany                   Amtsgericht Charlottenburg
>> Tel.: +49 30 23 45 86 96                Sitz der Gesellschaft: Berlin
>> Fax:  +49 30 23 45 86 95                Geschäftsführer: Olaf Wagner
>>
>>
>

-- 
Neels Janosch Hofmeyr
Software Developer

neels at elego.de
Public Key: http://binarchy.net/neels/neels.hofmeyr.public.key.asc

elego Software Solutions GmbH           http://www.elegosoft.com
Gustav-Meyer-Allee 25, Gebäude 12       HRB 77719
13355 Berlin, Germany                   Amtsgericht Charlottenburg
Tel.: +49 30 23 45 86 96                Sitz der Gesellschaft: Berlin
Fax:  +49 30 23 45 86 95                Geschäftsführer: Olaf Wagner


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080128/74698b15/attachment-0002.sig>


More information about the M3devel mailing list