unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: jostein@kjonigsen.net
Cc: Ingo Lohmar <i.lohmar@gmail.com>, 23053@debbugs.gnu.org
Subject: bug#23053: 25.0.92; error in cc-mode when editing C# file with a generic class inheritance
Date: Fri, 25 Mar 2016 18:54:45 +0000	[thread overview]
Message-ID: <20160325185445.GA5003@acm.fritz.box> (raw)
In-Reply-To: <1458564356.2685887.555173674.7F6E345D@webmail.messagingengine.com>

Hello, Jostein.

On Mon, Mar 21, 2016 at 01:45:56PM +0100, Jostein Kjønigsen wrote:
> On Mon, Mar 21, 2016, at 01:26 PM, Alan Mackenzie wrote:

> I've been tracking Emacs git master.

> > commit 58862751bde2611d9ea99a33ecb5b0c13a7513b9
> > Author: Glenn Morris <rgm@gnu.org>
> > Date:   Thu Mar 17 00:14:11 2016 -0700

> After each "git pull", I've done a "make distclean && make".

> > Can we be absolutely clear here, please.  Have you observed this bug in
> > Java Mode yourself?

> Yes. I've created a new file called test.java with the following
> contents:

> > package Test;

> > public class A extends B<T>$

> Pressing enter at this point will trigger a similar error, and the same
> will typing { following that enter.

Thanks.  That was useful, and enabled me to reproduce the problem.  It's
a separate bug from the one Saulius reported with csharp-mode, and occurs
only in the Emacs master branch.  To be precise, a new variable
introduced in that branch hadn't been given a proper initial value for
Java (or, indeed, C#), so had the default value nil, which led to the
error happening.

This bug has now been fixed and committed to the master branch of the
Emacs git repository.  Would you please get the latest version, and
confirm that the bug has been satisfactorally fixed.  Thanks!

> > I suspect the interface between CC Mode and csharp-mode.  :-)
 
> > My working hypothesis is that the compiled csharp-mode.elc was compiled
> > on an earlier revision of the emacs-25 branch, hence didn't pick up a
> > newly introduced c-lang-defvar properly, thus leaving its value at nil.
> > This nil value is what triggered the error in
> > c-forward-<>-arglist-recur.

> That's a good theory and I decided to completely wiping csharp-mode and
> reevaluating it inside Emacs to verify that stale data is not the cause
> of the errors.

> I'm still getting "wrong argument: stringp, nil" everywhere when
> pressing enter interactively inside Emacs csharp-mode buffers.

I hope that's now fixed.

> I therefore tried to look into the build-system to see what it reports.

> Byte-compiling csharp-mode triggers a warning which so far haven't been
> an issue for csharp-mode:

> > $ make csharp-mode.elc
> > ...
> > csharp-mode.el:1772:17:Warning: looking-back called with 1 argument, but
> >     requires 2-3

Yes.  Somebody in the Emacs team has decided that the second argument,
previously optional, is now mandatory.  I wish people wouldn't do things
like that.  The only thing sensible here is to add a second argument,
nil, to each call to looking-back.

Can I ask you, as maintainer of csharp-mode:
(i) To insert "(eval-when-compile (require 'cc-langs))" near the top of
  csharp-mode.el.
(ii) To add something to the manual telling users to compile
  csharp-mode.el with the Emacs it's going to be run with.

(i) should help ensure csharp-mode gets properly compiled.  (ii) should
also help ensure csharp-mode is properly compiled.  :-)

> Trying to run a "make test" of csharp-mode against git master, most of
> the tests breaks:

> > Test indentation-rules-should-be-as-specified-in-test-doc backtrace:
> >   c-forward-label()
> >   c-guess-basic-syntax()
> >   c-indent-region(1 1390)
> >   indent-region(1 1390)
> >   (let* ((buffer (find-file "test-files/indentation-tests.cs")) (orig-
> >   (lambda nil (let* ((buffer (find-file "test-files/indentation-tests.
> >   ert--run-test-internal([cl-struct-ert--test-execution-info [cl-struc
> >   ert-run-test([cl-struct-ert-test indentation-rules-should-be-as-spec
> >   ert-run-or-rerun-test([cl-struct-ert--stats t [[cl-struct-ert-test a
> >   ert-run-tests(t #[385 "\306\307\"\203G\211\211G\310U\203\211@\20
> >   ert-run-tests-batch(nil)
> >   ert-run-tests-batch-and-exit()
> >   command-line-1(("-L" "." "-l" "csharp-mode-tests.el" "-f" "ert-run-t
> >   command-line()
> >   normal-top-level()
> > Test indentation-rules-should-be-as-specified-in-test-doc condition:
> >     (wrong-type-argument stringp nil)
> >    FAILED  15/15  indentation-rules-should-be-as-specified-in-test-doc

Please let me know if this still happens.

> I haven't looked into Saulius's C# file to reproduce this issue, so I
> can't say if that is why you cannot reproduce or not.

> Are the changes between between Emacs-25 and master so significant that
> they could the big differences between our observations? I find that
> hard to believe.

Yes, that is indeed the case.  Two variables in master weren't properly
initialised for Java, Pike, ...., and derived modes.  Sorry about that!

> -- 
> Jostein Kjønigsen
> jostein@kjonigsen.net / jostein@secure.kjonigsen.net

-- 
Alan Mackenzie (Nuremberg, Germany).





  parent reply	other threads:[~2016-03-25 18:54 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-18  9:07 bug#23053: 25.0.92; error in cc-mode when editing C# file with a generic class inheritance Saulius Menkevičius
2016-03-18 21:13 ` bug#23053: followup on 23053 Saulius Menkevičius
2016-03-18 21:33 ` bug#23053: 25.0.92; error in cc-mode when editing C# file with a generic class inheritance Jostein Kjønigsen
2016-03-18 23:08   ` Ingo Lohmar
2016-03-19  7:29     ` Jostein Kjønigsen
2016-03-19  8:27       ` Jostein Kjønigsen
2016-03-21 12:26         ` Alan Mackenzie
2016-03-21 12:45           ` Jostein Kjønigsen
2016-03-21 21:53             ` Saulius Menkevičius
2016-03-22 10:21               ` Jostein Kjønigsen
2016-03-25 18:54             ` Alan Mackenzie [this message]
2016-03-26  7:26               ` Jostein Kjønigsen
2016-03-26 10:48                 ` Alan Mackenzie
2016-03-19 10:05       ` Ingo Lohmar
2016-03-19 15:00         ` jostein
2016-03-19 17:54           ` Jostein Kjønigsen
2016-03-20 20:57             ` Jostein Kjønigsen
     [not found] ` <mailman.7741.1458315553.843.bug-gnu-emacs@gnu.org>
2016-03-19 13:14   ` Alan Mackenzie
2016-03-19 14:15 ` Saulius Menkevičius
2016-03-20 21:16   ` Alan Mackenzie
2016-03-21 21:51     ` Saulius Menkevičius
2016-03-26 10:55       ` Alan Mackenzie
2016-03-26 10:59       ` Alan Mackenzie

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=20160325185445.GA5003@acm.fritz.box \
    --to=acm@muc.de \
    --cc=23053@debbugs.gnu.org \
    --cc=i.lohmar@gmail.com \
    --cc=jostein@kjonigsen.net \
    /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).