From: Eric Ludlam <ericludlam@gmail.com>
To: Dmitry Gutov <dgutov@yandex.ru>,
Eric Ludlam <eric@siege-engine.com>, Nix <nix@esperi.org.uk>,
David Engster <deng@randomsample.de>
Cc: Stephen Leake <stephen_leake@stephe-leake.org>, emacs-devel@gnu.org
Subject: Re: progmodes/project.el and search paths
Date: Fri, 14 Aug 2015 20:48:03 -0400 [thread overview]
Message-ID: <55CE8C43.7080804@gmail.com> (raw)
In-Reply-To: <55CE6C11.5070606@yandex.ru>
On 08/14/2015 06:30 PM, Dmitry Gutov wrote:
> On 08/14/2015 02:52 PM, Eric Ludlam wrote:
>
>> 2) Parsers don't check types, etc as they go, and are flexible about the
>> symbols they accept.
>>
>> This means you can get irrational tags. This is for a combination of
>> handling incomplete code, speed (less to do) and because most folks just
>> go an run their compiler at some point anyway.
>
> Doesn't that mean that code completion at the end of a chain of calls
> can be inaccurate (with e.g. lots of false positives), even if code is
> otherwise valid?
While the parser generally ignores data types, it does record the
declarations. When smart completion is invoked, only the types
currently relevant are resolved in order to make the completions
accurate. Thus:
Parsing phase: Just record the data as declared, don't check.
Completion phase: Look up data types as needed for symbols in the
completion string.
If point of fact, Semantic's tagging parser doesn't parse the bodies of
functions, and just skips over them. The body is only parsed if a
completion is needed since the symbols within are locally scoped and
don't affect other tags.
On a side note, I've had a lot of complaints that completion was too
pedantic, and if it can't find a pedantic answer, perhaps it could let
loose a little and find a vaguely close answer.
>>
>>> In summary; Semantic can extract useful data out of pretty badly
>>> trashed
>>> code, and track your changes while you edit in a robust way.
>>
>> It seems I stand corrected, thanks. However, it would be interesting
>> to do a comparison on some real file, against a widely used compiler,
>> such as Clang.
>>
That would be interesting. What would the goal be? There are lots of
things Semantic doesn't do, nor was intended for. Like many Emacs
tools, the Semantic parser is a bit liberal in the assumptions it makes
to get a good enough answer.
Eric
next prev parent reply other threads:[~2015-08-15 0:48 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-02 13:52 progmodes/project.el and search paths Eric Ludlam
2015-08-02 17:17 ` Dmitry Gutov
2015-08-03 1:19 ` Eric Ludlam
2015-08-03 16:16 ` Stephen Leake
2015-08-03 22:56 ` Dmitry Gutov
2015-08-08 13:07 ` Nix
2015-08-09 5:18 ` Stephen Leake
2015-08-09 12:17 ` David Engster
2015-08-09 15:55 ` Stephen Leake
2015-08-10 11:29 ` David Engster
2015-08-10 16:43 ` Stephen Leake
2015-08-12 10:10 ` David Engster
2015-08-12 13:49 ` Stephen Leake
2015-08-12 15:36 ` David Engster
2015-08-13 11:53 ` Nix
2015-08-13 12:05 ` Dmitry Gutov
2015-08-14 11:52 ` Eric Ludlam
2015-08-14 22:30 ` Dmitry Gutov
2015-08-15 0:48 ` Eric Ludlam [this message]
2015-08-15 7:05 ` Eli Zaretskii
2015-08-10 17:12 ` Nix
2015-08-03 22:47 ` Dmitry Gutov
2015-08-04 11:52 ` Eric Ludlam
2015-08-04 16:09 ` Dmitry Gutov
2015-08-03 13:49 ` David Engster
2015-08-03 14:09 ` Dmitry Gutov
2015-08-03 14:27 ` David Engster
2015-08-03 15:13 ` Dmitry Gutov
2015-08-03 21:35 ` David Engster
2015-08-03 23:21 ` Dmitry Gutov
2015-08-04 8:15 ` David Engster
2015-08-04 13:43 ` Eli Zaretskii
2015-08-04 18:05 ` Dmitry Gutov
2015-08-04 18:16 ` Eli Zaretskii
2015-08-04 18:41 ` Dmitry Gutov
2015-08-04 19:23 ` Eli Zaretskii
2015-08-04 19:40 ` João Távora
2015-08-05 2:52 ` Eli Zaretskii
2015-08-04 20:15 ` Dmitry Gutov
2015-08-05 2:49 ` Eli Zaretskii
2015-08-05 6:18 ` Stephen Leake
2015-08-05 15:08 ` Eli Zaretskii
2015-08-05 15:36 ` Dmitry Gutov
2015-08-05 16:31 ` Eli Zaretskii
2015-08-05 16:45 ` David Engster
2015-08-05 22:17 ` Dmitry Gutov
2015-08-06 7:56 ` Stephen Leake
2015-08-06 7:54 ` Stephen Leake
2015-08-05 9:42 ` Dmitry Gutov
2015-08-05 15:23 ` Eli Zaretskii
2015-08-05 15:31 ` Dmitry Gutov
2015-08-05 16:16 ` Eli Zaretskii
2015-08-06 6:44 ` Dmitry Gutov
2015-08-06 7:43 ` Stephen Leake
2015-08-06 10:25 ` Dmitry Gutov
2015-08-06 14:27 ` Stephen Leake
2015-08-06 23:16 ` Dmitry Gutov
2015-08-07 14:10 ` Stephen Leake
2015-08-07 14:44 ` Dmitry Gutov
2015-08-03 16:35 ` Stephen Leake
2015-08-03 16:45 ` Eli Zaretskii
2015-08-03 21:07 ` Stephen Leake
2015-08-03 21:33 ` David Engster
2015-08-04 2:35 ` Eli Zaretskii
2015-08-03 15:09 ` Eli Zaretskii
2015-08-03 15:16 ` Dmitry Gutov
2015-08-03 15:29 ` Eli Zaretskii
2015-08-03 19:01 ` Dmitry Gutov
2015-08-03 19:19 ` Eli Zaretskii
2015-08-03 21:05 ` Dmitry Gutov
2015-08-04 11:48 ` Eric Ludlam
2015-08-04 16:20 ` Dmitry Gutov
2015-08-03 16:25 ` Stephen Leake
2015-08-03 21:33 ` Stefan Monnier
2015-08-03 22:15 ` David Engster
2015-08-03 22:50 ` Dmitry Gutov
2015-08-04 7:13 ` Stefan Monnier
2015-08-04 8:13 ` David Engster
2015-08-05 13:42 ` Stefan Monnier
2015-08-06 11:27 ` {Spam?} " Eric Ludlam
2015-08-06 23:10 ` Stefan Monnier
2015-08-07 11:18 ` Eric Ludlam
2015-08-07 11:43 ` David Engster
2015-08-07 12:17 ` Dmitry Gutov
2015-08-07 12:40 ` David Engster
2015-08-07 12:54 ` Dmitry Gutov
2015-08-07 12:08 ` Alexis
2015-08-04 9:40 ` Stephen Leake
2015-08-04 17:43 ` Dmitry Gutov
2015-08-04 19:49 ` Stephen Leake
2015-08-04 20:03 ` Dmitry Gutov
2015-08-05 6:02 ` Stephen Leake
2015-08-05 9:59 ` Dmitry Gutov
2015-08-06 7:25 ` Stephen Leake
2015-08-07 14:21 ` Dmitry Gutov
2015-08-05 1:29 ` Eric Ludlam
2015-08-11 20:01 ` Dmitry Gutov
2015-08-12 0:49 ` Eric Ludlam
2015-08-12 7:25 ` project terminology Stephen Leake
2015-08-12 9:28 ` progmodes/project.el and search paths Dmitry Gutov
2015-12-29 2:00 ` Dmitry Gutov
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=55CE8C43.7080804@gmail.com \
--to=ericludlam@gmail.com \
--cc=deng@randomsample.de \
--cc=dgutov@yandex.ru \
--cc=emacs-devel@gnu.org \
--cc=eric@siege-engine.com \
--cc=nix@esperi.org.uk \
--cc=stephen_leake@stephe-leake.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.
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).