eiffelroom

tooledp

Description

'edp' is an IDE for Eiffel, currently in pre-alpha, based on the Gobo package, and using a pure Eiffel GUI based on a translation and adaptation of the Fox toolkit.

While it has reached the stage of being of some use to its author as a code browser, it is not yet a substitute for any other tool. Its principal advantage, as with other tools based on the Gobo libraries, is speed and adaptability of the codebase.

As with Gobo in general, it is intended that edp will be able to compile EiffelStudio compatible projects, eventually ...

Primary development of edp is with edp itself on Linux, with C compilation using gcc. The Win32 code is compilable but the current type-set analysis has limitations (read bugs ...) in conjunction with external C code.

Current work is aimed at providing a precise per-thread GC and associated thread library support, both to support threading within edp for separation of GUI interaction from compilation, and to enable generation of robust GC enabled multi-threaded cross-platform applications using edp.

Links

Dependencies

Supported Platforms

Licensing

Progress Report on GC

My GC (Garbage Collector !) work on gec is nearing a working version with, I think (!), only expanded classes containing embedded references to deal with, of which TYPED_POINTER[ANY] I know is outstanding.

With GC collection disabled, the allocator is working fine [i.e. the compiler works], and the GC testing built in to the C implementation works OK, so in theory a working implementation is not far off.

With GC collection enabled, some objects are being collected that the crash stack trace show as being part part of the set of reachable objects, so marking is as yet incomplete, either from the stack or between objects.

The current code is a precise GC, with no provision as yet for moving objects, or returning memory to the OS, although the latter is essentially trivial for pages that are detected as not in use.

I have only worked on Linux so far, but the code to adapt to Win32 is only one routine that calls the mmap() system call, and that should be fairly easy to adapt to a Win32 version.

Other commitments are looming, so development may slow down for a while ...

about - contact