M3ide runs under xemacs. It could easily be converted to run under FSF emacs 19.x, if the equivalent of W3 (web browser) is available, by someone familiar with the FSF emacs menu format.
It can be used to call m3build, m3ship, m3pp, m3gdb, m3browser, see documentation files, analyze_coverage and gprof. M3build is called on the right package based on the currently edited file and uses the right options if coverage or profiling is requested. When the program is run, an emacs shell window is opened and the correct executable is called, if coverage/profiling is required, and may be specified to run with shownew, showheap and showthreads. FormsVBT forms may be shown, somewhat like in formsedit.
The first step is set your emacs path to include /usr/local/modula3-3.5.4-B/lib/elisp and to load m3setup.el from your .emacs file. This will setup the automatic loading of the m3ide (within the modula3) mode when a file ending in .i3, .m3, .ig, .mg, .fv is loaded. Then, upon need, the m3ide and the m3browser executables will be started as child processed of xemacs and communicate through pipe (m3ide) and sockets (m3browser). By default, m3browser will not accept requests from other hosts but will accept requests from other users on the same host, thus making your source code, along the paths listed in the emacs variable m3-source-roots, available to anyone with access to your host.
Starting the m3ide takes some time. Starting m3browser, depending on the packages scanned, may take a relatively long time. Dont be surprised by the delays encountered when they are started, the first time a command using them is used.
I am quite happy with the functionality available with this simple environment. However, i am not happy with the speed of xemacs and the W3 mode in particular. Furthermore, emacs lisp is not multi-threaded which makes asynchronous communication with child processes difficult and at times unreliable, at least for a relatively neophyte lisp programmer like myself.
I already implemented in a separate Modula-3 executable (m3ide) a number of things which could have been done in emacs lisp. Other things like showing a FormsVBT form needed a separate executable anyway. In the longer term, it could be interesting to move even more functionality into Modula-3 code. Here is a whish list. I will not have time in the foreseeable future to do any of it. Volunteers are more than welcome.