unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: "Eric M. Ludlam" <eric@siege-engine.com>
Cc: dgutov@gnu.org, cedet-devel@lists.sourceforge.net, emacs-devel@gnu.org
Subject: Re: CEDET completion-at-point-function
Date: Wed, 18 Jun 2014 21:47:08 -0400	[thread overview]
Message-ID: <jwvy4wt1xqp.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <53A23AD7.3050007@siege-engine.com> (Eric M. Ludlam's message of "Wed, 18 Jun 2014 21:20:23 -0400")

> to better comment.  There is an expense expanding from some symbol p (which
> could be port) past the ->, and to the next symbol.  If there happen to be
> 10 possible "p" expansions that are all also some sort of struct, then p->f,
> the f could be a rather large  number of possible things, and thus be
> expensive if not handled carefully.

Indeed.

> For example if the code had 4 variables "port1" "port2", etc that were
> all the same type.  When expanding the ->f, that should happen once
> instead of 4 times because we know all the types are the same.

A bit of caching should go a long way, but in any case, as you mention:
we'll cross that bridge when we get there.

> reference.  "d" is generally derived the same as f and a, but we apply one
> last filter of the return type, so if you had:
> q = p->f->a->d;
> Then d's type should be similar to q.

That's odd.  Does that mean that the user might have been unable to use
completion on the "p->f->a" part (before typing "->d") because the "a"
field was not of a similar type as q?
Or do you first use this "type similar to context" filter an if the
filter doesn't let anything through, then you drop the filter (kind of
like we filter out files that match completion-ignored-extensions,
except when that results in "no match")?

> I hope that helps, though I'm pretty sure it won't impact your current
> experiment much since these are all thoughts of optional optimizations.

Indeed.


        Stefan

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems

  reply	other threads:[~2014-06-19  1:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-11 18:24 CEDET completion-at-point-function Stefan Monnier
2014-05-13  1:59 ` Eric M. Ludlam
2014-06-15  3:14   ` [CEDET-devel] " Stefan Monnier
2014-06-15 18:55     ` Eric M. Ludlam
2014-06-16 20:52       ` [CEDET-devel] " Stefan Monnier
2014-06-19  1:20         ` Eric M. Ludlam
2014-06-19  1:47           ` Stefan Monnier [this message]
2014-06-22  0:23             ` Eric M. Ludlam

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvy4wt1xqp.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=cedet-devel@lists.sourceforge.net \
    --cc=dgutov@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=eric@siege-engine.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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).