On 10/06/2012, at 10:15 AM, john skaller wrote:
> I'm in the middle of rewriting the pointer model.
First: DEVELOPERS NOTE BREAKAGE INVISAGED.
This means I may have just broken your code, and,
the new modelling stuff is certainly deficient and probably
bugged as well :)
There are now 3 types of pointers:
&T : your usual pointer to an object
@T: a pointer to an object or NULL
+T: an array element pointer, can be incremented, can't be NULL
The type &T has a typedef ptr[T].
The type @T is a union Ptr of &T | nullptr.
The type +T is an abstract type with (unsafe) increment ops,
typedef carray[T].
The primary use (temporarily!!) for the new types is
+char
which is a pointer to an array of char. [This will be replaced
later with a proper ntbs array, since we actually can find
the length of a nul terminated string]
The following operations are available (temporarily!):
+px // convert &T pointer to +T pointer: SAFE
-px // convert +T pointer to &T pointer: UNSAFE
Note that the SAFE conversion +px is dangerous because
you can now increment a pointer to a single object. BAD IDEA!
But the cast itself is safe.
The UNSAFE conversion is unsafe because now you think
you can safely dereference the &T pointer, but if has
gone "past the end" of an array or something, you can't.
However, if the pointer does point at an object, the cast
is safe.
So roughly neither of these conversions are safe to use.
They're needed at least temporarily to "hack" existing code
quickly to make it work.
Impetus:
The reason for all this is to get this to work:
var x = ( (1,2,3), (4,5,6) );
var y = transpose x;
y is now ( (1,4), (2,5), (4,6) )
The transpose operation subsumes zip.
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language