From: Jim Blandy <jimb@codesourcery.com>
To: gdb@sourceware.org
Subject: Re: GDB and scripting languages - which
Date: Tue, 09 Jan 2007 20:11:00 -0000 [thread overview]
Message-ID: <m3k5zw7yex.fsf@codesourcery.com> (raw)
In-Reply-To: <20070108222005.GA27451@nevyn.them.org> (Daniel Jacobowitz's message of "Mon, 8 Jan 2007 17:20:05 -0500")
I would prefer that GDB use a single extension language, and that that
language be Python. Python has more momentum than Guile in almost any
way one might measure it:
- number of users who are familiar with it
- body of large programs written in it
- number of modules available for reuse
- number of programs embedding it
- number of books available for learning it
(I was the maintainer of Guile for several years, and I say this with
much kind regard for the people who have invested their time and
talents in Guile. But Guile has had more than enough time to attract
uses and users on its own merits, and compared to Python, it hasn't
worked out. It's time to cut our losses.)
It takes a lot of effort to pull together a useful interface for an
application. Sustaining that effort for several different extension
languages would be a substantial burden. I understand that it's a
quick weekend's work to implement a Guile or Python function that
passes MI requests and responses back and forth between Guile and GDB.
But this is just a bare stub of an interface. An extension language
interface needs to provide higher-level functions:
- create and delete breakpoints, with callbacks when hit
- look up symbols
- enumerate object files, compilation units, functions, local variables
- pattern-match and construct types
- map between source locations and machine code locations
- represent container types like C++ map<> and vector<> in terms of
their interface, not their implementation: a map<> is a key/value
mapping, not a red-black tree; a vector<> is an ordered series of
elements, not a length, size, and content pointer, or however it's
done
All these things can be done via MI (perhaps with some extensions),
but it would be silly to have everyone writing their own functions to
send MI back and forth; there should be a library of functions to do
all this for you, so script authors can concentrate on what they
actually want GDB to do, instead of managing the details of MI.
Maintaining such libraries for multiple extension languages would be
wasted work, and python is good enough.
next prev parent reply other threads:[~2007-01-09 20:11 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-08 22:20 Daniel Jacobowitz
2007-01-08 22:39 ` Kip Macy
2007-01-08 22:42 ` Daniel Jacobowitz
2007-01-08 23:03 ` Kip Macy
2007-01-08 22:40 ` Bob Rossi
2007-01-09 20:11 ` Jim Blandy [this message]
2007-01-09 20:23 ` Bob Rossi
2007-01-09 21:37 ` Paul Koning
2007-01-09 21:42 ` Daniel Jacobowitz
2007-01-09 21:48 ` Nick Roberts
2007-01-09 21:53 ` Daniel Jacobowitz
2007-01-11 4:31 ` Nick Roberts
2007-01-11 5:06 ` Daniel Jacobowitz
2007-01-13 8:30 ` Eli Zaretskii
2007-01-09 21:55 ` Kip Macy
2007-01-11 14:56 ` Robert Dewar
2007-01-11 15:07 ` Robert Dewar
2007-01-09 20:30 ` Mark Kettenis
2007-01-13 8:32 ` Eli Zaretskii
2007-02-10 12:28 ` Eli Zaretskii
2007-02-10 18:10 ` Pedro Alves
2007-02-10 20:33 ` Daniel Jacobowitz
2007-02-12 17:47 ` Jim Blandy
2007-02-12 21:36 ` Eli Zaretskii
2007-02-12 21:59 ` Robert Dewar
2007-02-12 22:07 ` Daniel Jacobowitz
2007-02-12 22:07 ` Robert Dewar
2007-02-14 5:57 ` Jim Blandy
2007-02-14 15:42 ` Eli Zaretskii
2007-02-14 16:01 ` Paul Koning
2007-02-14 17:50 ` Eli Zaretskii
2007-02-14 16:06 ` Daniel Jacobowitz
2007-02-14 18:01 ` Eli Zaretskii
2007-02-14 18:45 ` Daniel Jacobowitz
2007-02-14 17:37 ` Robert Dewar
2007-02-14 18:24 ` Eli Zaretskii
2007-02-14 18:29 ` Robert Dewar
2007-02-14 18:33 ` Eli Zaretskii
2007-02-14 18:34 ` Robert Dewar
2007-02-14 20:14 ` Jim Blandy
2007-02-14 20:56 ` Robert Dewar
2007-02-14 21:47 ` Jim Blandy
2007-02-14 21:23 ` Jim Blandy
2007-02-14 21:46 ` Robert Dewar
2007-02-14 20:10 ` Jim Blandy
2007-02-15 1:03 ` Gaius Mulley
2007-02-17 13:53 ` Eli Zaretskii
2007-02-17 14:07 ` Daniel Jacobowitz
2007-02-18 4:11 ` Robert Dewar
2007-02-19 22:17 ` Jim Blandy
2007-01-15 18:29 Kaz Kylheku
2007-01-15 21:20 ` Eli Zaretskii
2007-01-16 0:17 ` Kip Macy
2007-01-17 19:09 ` Jim Blandy
2007-01-16 0:38 Kaz Kylheku
2007-01-17 19:24 ` Jim Blandy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3k5zw7yex.fsf@codesourcery.com \
--to=jimb@codesourcery.com \
--cc=gdb@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox