[M3devel] syscall wrappers, m3gc and cm3..

Olaf Wagner wagner at elegosoft.com
Fri Apr 20 14:56:32 CEST 2007


On Fri, April 20, 2007 1:10 pm, Dragiša Durić wrote:
> On Fri, 2007-04-20 at 11:57 +0200, Olaf Wagner wrote:
>> On Fri, April 20, 2007 9:25 am, DragiÃ
¡a Durić wrote:
>> > While maintaining our spinoff pm3 version, I've cleaned most of syscall
>> > wrapper needs from library source. Problem during early m3core
>> > development was, most probably, unclean situation about where and how C
>> > library will be invoked and someone decided to play safe, and to wrap
>> > all syscalls implied by used library calls to be fully safe.
>> >
>> > Across m3core and libm3, number of these low level, C library calls is
>> > really small. File I/O, socket I/O, filesystem operations... make a big
>> > majority of them (more than 98%). As all of these low level C lib calls
>> > these were easily identifiable (few grep's), I've cleaned them without
>> > much problems and after that, I've eliminated wrapper by wrapper. At
>> > this moment, I think none is present in our in-house m3 env.
>>
>> You would also need to consider all indirect system calls via libraries
>> and embedded C code. I think the M3 developers tried to offer a more or
>> less complete set of safe system calls, regardless how they are called
>> from the M3 program.
>
>   It is, but C libraries are mostly in these few percents remaining...
> Good wrapping techniques and auditing of existing libraries (hint: grep
> EXTERNAL) would be small effort for seamless integration of full m3
> runtime with unperfect C world.

I was trying to say that cover only the calls from libraries now used
by the M3 runtime, but M3 is an open language and allows the integration
of C and C++ (and other) code (and thus of arbitrary other libraries).

>> > I know answer to this following question is hidden somewhere in
>> > archives, but as my previous questions has shown - it can be hidden very
>> > deep :). So, can someone highlight current m3gc and syscall wrappers
>> > situation for me? How do I build CM3 WITH most extensive GC available at
>> > the moment?
>>
>> The current CM3 compiler/runtime does not need virtual memory protection
>> and thus does not need the system call wrappers any more, as Antony has
>> modified the compiler to generate hints for the garbage collector. So
>> you can more or less ignore this issue (unless you really want memory
>> protection) and simply use m3gc-simple for all platforms.
>
>   Does it mean garbage collection is not
> incremental/generational/supercallifraglistic... anymore, or Anthony's
> work has made it work without memory protection?

The latter; we've got incremental and generational garbage collection
without the need for memory protection and system call wrappers :)

Olaf
-- 
Olaf Wagner -- elego Software Solutions GmbH, Ohmstr. 9, 10179 Berlin, Germany
phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194



More information about the M3devel mailing list