On Thu, 07 Feb 2008 04:30:34 GMT, stephen@[EMAIL PROTECTED]
(Stephen
J. Bevan) wrote:
>George Neuner <gneuner2/@[EMAIL PROTECTED]
> writes:
>>>Try http://www.ravenbrook.com/project/mps.
>>
>> Great reference. Thanks!
>>
>> Another neat thing to come out of the depths of Harlequin. I guess
>> the question is how well it works and how easily it can be integrated
>> into a project that isn't Lisp or ML.
>
>It was not, as far as I'm aware, used in LispWorks or MLWorks (both
>had well tuned GCs before MPS was created) so the question could be
>turned around to ask how easily MPS could be used in a project that is
>Lisp or ML :-) Within Harleqin MPS saw most use in Dylan and PostScript.
Dylan is a Scheme which is a Lisp. And according to the docs, it was
used in Harlequin's MLWorks.
>The API might look a little complicated initially but that's because
>it uses the same general API to cover quite different allocation
>schemes e.g. manual fixed size, manual variable size, automatic mostly
>copying, automatic mark&sweep, ... etc. All it really boils down to
>is initializing it, creating a pool of the desired type (say automatic
>mostly copying) and then calling mps_{reserve,commit} to allocate an
>object in that pool.
>
>> I see it uses a 5 phase collection to support coordinating pools,
>> rather than the 2 or 3 phase collection typical for an integrated
>> heap. I have to wonder what kind of overhead that imposes.
>
>I'm fairly sure Richard and Nick would be happy to talk about the pros
>and cons of the design choices. There is mailing list for just such
>topics: mps-questions@[EMAIL PROTECTED]
email reply remove "/" from address


|