public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: David Carlton <carlton@math.stanford.edu>
To: Andrew Cagney <ac131313@redhat.com>
Cc: gdb <gdb@sources.redhat.com>, Elena Zannoni <ezannoni@redhat.com>,
	Jim Blandy <jimb@redhat.com>
Subject: Re: [rfc] struct dictionary
Date: Tue, 29 Apr 2003 19:16:00 -0000	[thread overview]
Message-ID: <ro1k7ddm7vp.fsf@jackfruit.Stanford.EDU> (raw)
In-Reply-To: <3EAE95CD.8070207@redhat.com>

On Tue, 29 Apr 2003 11:10:05 -0400, Andrew Cagney <ac131313@redhat.com> said:

>> On Fri, 25 Apr 2003 11:31:35 -0400, Andrew Cagney <ac131313@redhat.com> said:
>> 

>>> Ok, humor me ...
>>> http://sources.redhat.com/ml/gdb/2003-04/msg00017.html why even
>>> build these data structures during symbol reading?  It takes time
>>> and space, yet is probably never used.  Why not on-demand build this
>>> dictionary specialized for the block?
>> That sounds great to me if we can get it to work.  It's certainly

>> another reason to try to get the symbol lookup stuff abstracted behind
>> an opaque interface: it makes lazy loading of data a lot easier.

> But which interface?

> A block has a language, and [I think] it's the language that, in the
> end decides that block's name->symbol lookup strategy.  The language
> can, on demand, build a dictionary for its block.

Currently, all uses of symbols in blocks either iterate over all
symbols or else are looking for symbols with a given natural name.  As
you say, because of the features of certain languages, sometimes you
need to refine the search further beyond that, but that's a good first
cut.  So having iterators dict_iterator_{first,next} and
dict_iter_name_{first,next} is a good first step: it unifies all the
existing mechanisms for symbol lookup, but doesn't commit to any sort
of implementation mechanism.  It certainly would allow for
constructing the actual data structures on demand: for example, we
could add an implementation that doesn't actually build the data
structures storing the symbols until the first time that an iterator
is called.

I'm certainly willing to believe that the interface might change in
the future; but separating the interface from the implementation is a
good first step no matter what.

I kind of get the impression that I'm missing your point somehow and
that we're talking past each other.  I'll post a concrete patch soon
(Wednesday, maybe?  It's done on my laptop, but I don't have my laptop
with me), and hopefully that will clarify matters.

David Carlton
carlton@math.stanford.edu

  reply	other threads:[~2003-04-29 19:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-16 20:05 David Carlton
2003-04-25  2:17 ` Andrew Cagney
2003-04-25  2:22   ` Daniel Jacobowitz
2003-04-25  4:35   ` David Carlton
2003-04-25 15:31     ` Andrew Cagney
2003-04-25 16:38       ` David Carlton
2003-05-01 23:09         ` Andrew Cagney
2003-05-10 18:09           ` Andrew Cagney
2003-06-03  2:20             ` Elena Zannoni
2003-06-03  3:00               ` David Carlton
2003-04-29 15:10     ` Andrew Cagney
2003-04-29 19:16       ` David Carlton [this message]
2003-04-29 20:06         ` Andrew Cagney
2003-04-29 20:39           ` David Carlton

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=ro1k7ddm7vp.fsf@jackfruit.Stanford.EDU \
    --to=carlton@math.stanford.edu \
    --cc=ac131313@redhat.com \
    --cc=ezannoni@redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jimb@redhat.com \
    /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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).