So we are achieving parity with C developers.  Thanks, Mars!

Charles Yeomans

On Sep 14, 2006, at 6:29 PM, Frank Condello wrote:

Not sure I follow - If you're using Ptr it sure does prevent the exception (and can blow up in the process - which is how I like it!)

Frank.
<http://developer.chaoticbox.com/>

On 14-Sep-06, at 6:13 PM, Charles Yeomans wrote:

Too bad the proposed syntax changes don't prevent the OutOfBoundsException :)

Charles Yeomans

On Sep 14, 2006, at 5:33 PM, Daniel Stenning wrote:

 Currently to use pointers for speed we would do something like :
( or use malloc() )

  dim m as new MemoryBlock(800)
  dim p as ptr = m.Ptr(0)
  dim kDouble as integer = 4
  for i as integer = 0 to 100
    p.Double(i*kDouble) = 666.666
  Next

?

- now wouldn't it be nice if we could just do:

dim m as new MemoryBlock(800)
  for i as integer = 0 to 100
    m.Double[I] = 666.666
  Next

Asn well as

  for i as integer = 0 to 100
    p.Double[I] = 666.666
  Next

On 14/9/06 20:49, "Frank Condello" <[EMAIL PROTECTED]> wrote:

When you need speed instead of pretty code just access the pointer
directly and calculate the offsets - I'll often define a  stride
constant in the memoryblock subclass to keep things manageable. With
this in mind, pretty code for an array of single-precision floats
might look like this:

m.Float(3) = 1.0 // 1 virtual function call

When you need speed it looks more like:

m.Pointer( m.kStride * 3 ) = 1.0 // No function calls!

Not pretty, but it's much faster (though sadly still not as fast as C
code) and if you decide you need doubles later on just change the
stride and everything will continue to work. You can also pass
m.Pointer to declares to save a conversion during those calls.

I agree it would be nice to be able to define a byte stride (and even
interleaved strides) for MemoryBlock and Ptr to avoid these extra
steps but it would have to be implemented at the preprocessor or
compiler level to be any good. I'd be happy with a more robust Ptr
type - e.g. instead of "Dim p As Ptr" use something like "Pointer p
As Integer" or "Pointer p As myStruct" where p's offsets match it's
type.



_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to