[info-mcl] digitool (MCL) / clozure (OpenMCL)
Toomas Altosaar
Toomas.Altosaar at hut.fi
Thu Oct 11 06:44:28 EDT 2007
>At 10:26 AM +0300 10/11/07, Toomas Altosaar wrote:
>> > > 4. I would like to see the compiler improved. In particular, I would
>>>> like to see math be faster, especially floating point math.
>>>
>>>I would like to second these requests - being able to do reasonably
>>>fast floating point math on data allocated in a static region would be
>>>quite useful for graphics applications in general.
>>
>>And for any vector/matrix-based digital signal processing as well.
>>Currently in MCL we make calls to external frameworks written in C
>>with XCode. We need guarantees that memory isn't moved while the call
>>to C is in progress since C writes back directly to the addresses of
>>the vector(s) supplied in the FFI call.
>>
>>If it is technically gc-wise feasible, some macro that would inhibit
>>memory from being moved for the object in question:
>>
>>(with-gc-inhibited (vector1 vector2 vector3)
>> (some-FFI-op vector1 vector2 vector3))
>
>I don't think this would be the correct long term approach. Turning
>the GC off is like tuning interrupts off inside an OS kernel. You
>really try not to do that. It's bad for performance and it effects
>other threads in bad ways. It doesn't scale. There are other reasons
>as well.
I was infering that gc could run but would not move/relocate the
specific objects specified, in this example the three vectors. I was
not suggesting that egc/gc would be turned off globally. But it might
be technically difficult to come up with a gc that could provide this
functionality efficiently.
> >If not, then being able to allocate the vectors in static regions
>>would be the next best thing.
>
>This is the correct approach in my opinion. I am not sure this
>shouldn't be the default for floating point vectors. You can still
>GC these heaps you just can't compact them or move the objects.
>
>leb
OK.
More information about the info-mcl
mailing list