On 16/08/2008, at 8:27 PM, john skaller wrote:
>
> On 15/08/2008, at 4:08 PM, john skaller wrote:
>>
>>
>> All this is a hack. In theory,
>>
>> ++x;
>>
>> should be a procedure
>>
>> proc pre_incr: &t -> void;
>>
>> that is, it should accept a pointer, not a value.
>
> This is now implemented..
There is a bug in the handling of "ref" arguments .. I don't know
what it is. This procedure:
proc r(x:int, ref y:int)
{
var z = case 1 of (int + long);
print$ y; endl;
y++;
print $y; endl;
}
work fine when not inlined, but it fails when it is inlined.
Generally, a ref parameter x of type t is actually a pointer to t,
and all the uses in the procedure are replaced by *x, that is,
automagically dereferenced. The argument must be a pointer,
for example:
var x = 1;
r(x, &x);
When inlined, it is exactly the same EXCEPT that if the argument
is the address of a simple variable, the uses are replaced by the
variable. This no longer works ..
--
john skaller
[EMAIL PROTECTED]
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language