[M3devel] Utypes.asLong / Utypes.assignOffT

Neels Janosch Hofmeyr neels at elego.de
Mon Jan 28 18:22:21 CET 2008


Duh, that was definitely wrong. If anything, it should read

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

So, is this correct, now?

Neels Janosch Hofmeyr wrote:
> 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/5343d539/attachment-0002.sig>


More information about the M3devel mailing list