[M3devel] Compiler upgrade broken in Hudson CI
Rodney M. Bates
rodney_bates at lcwb.coop
Wed Feb 6 18:24:30 CET 2013
On 02/05/2013 02:28 AM, Jay K wrote:
> I will fix it, but I do desire to drop the old backend entirely.
> What is mainly stopping me right now is that on platforms that support m3gdb, debugging is degraded.
> I need to at least declare structs with fields (not to mention enums) before we can/should switch those platforms.
>
I am not sure what is happening here, but it is making me very nervous
with talk of removing backends.
I have put in a *huge* amount of work on m3gdb. While it is not even
close to being a complete Modula-3 debugger (I have several tens of
pages of handwritten to-do items for it), it is *far* ahead of
anything else in existence. Many many things like executing procedure
and method calls, accessing global and nonlocal variables, handling
procedure variables, open arrays, Modula-3 syntax and operators,
etc. etc. are either impossible or hopelessly tedious in any C or
generic debugger.
Moreover, for someone spoiled by Modula-3, it has been miserable work
for having to be done in C, with its brain-dead type system, absurd
identifier lookup system, half inside-out, half rightside-out type
expressions, etc. etc.
A small but vital part of this is work done inside the backend, to
generate usable Modula-3 debug information. Even that has taken a big
hit, as the old (4.5?) gcc-derived back end in the head has had its
Modu8la-3 debug info output totally disabled, for a long time--perhaps
two years or more. As I recall it, only the release branch supports a
working m3gdb right now.
And I use m3gdb all the time in my own work.
Make all the *alternative* backends you want, but *do not sabotage the
working m3gdb*. Leave the backend that supports m3gdb intact, present
in the releases and head, and easily selectable to build and use, with
simple and well-documented switches, until something newer supports at
least all the same debug functions.
>
> - Jay
>
More information about the M3devel
mailing list