Visual Studio Integration is a Nightmare

5 views
Skip to first unread message

nemerle fanboy

unread,
Oct 26, 2008, 9:20:29 PM10/26/08
to Nemerle Forum
Hello.

Working in Visual Studio with Nemerle is a nightmare if you are doing
something non-trivial:

1) types referenced from other assemblies cause "unbound type name"
errors (often but not always)
2) macro assemblies updates are not detected, obviously causing all
sorts of errors (I think this is always, after the project load)
3) while you edit some code, the syntax highlight engine or something
else stumbles on obviouvsly incomplete code and causes nagging
repeated exception panels (sometimes even Visual Studio crashes!).
4) real and fake error messages are mixed and you don't know what's
going on. Especially problematic when you are learning Nemerle or a
switching continuously from C# to Nemerle and back.

I'm using Nemerle in a mixed C#/Nemerle solution and it would be
difficult to use Visual Studio for C# and something else for Nemerle.

Please fix the Visual Studio integration!

VladD2

unread,
Oct 27, 2008, 12:25:03 PM10/27/08
to nemer...@googlegroups.com
2008/10/27 nemerle fanboy <nemerle...@yahoo.it>:

> 1) types referenced from other assemblies cause "unbound type name"
> errors (often but not always)

Please, create small test which reproduce error and report it in
http://nemerle.org/bugs/bug_report_page.php

> 2) macro assemblies updates are not detected, obviously causing all
> sorts of errors (I think this is always, after the project load)

Use "Project references" for you own macro-assemblies, and rebuild it
if it change.

> 3) while you edit some code, the syntax highlight engine or something
> else stumbles on obviouvsly incomplete code and causes nagging
> repeated exception panels (sometimes even Visual Studio crashes!).

May be you use debug build? In latest version of VS Integration all
assertion checks only in debug build.

> 4) real and fake error messages are mixed and you don't know what's
> going on. Especially problematic when you are learning Nemerle or a
> switching continuously from C# to Nemerle and back.

What is "fake error messages"?

> I'm using Nemerle in a mixed C#/Nemerle solution and it would be
> difficult to use Visual Studio for C# and something else for Nemerle.
>
> Please fix the Visual Studio integration!

Report bugs in Mantis and we will be try fix it.

>
> >
>

--
С уважением,
Чистяков Владислав,
www.rsdn.ru

Sir.De...@gmail.com

unread,
Oct 27, 2008, 2:21:04 PM10/27/08
to Nemerle Forum
My use of nemerle is anything but trivial. Interestingly I have never
encountered (1) before. Nor have I ever had a problem with (2).

(3) and (4) definitely are thorns in my side though. But ive gotten
used to them.

-----------------------------
(3) tends to occur when Methods and Properties are declared in classes
and interfaces without proper typing information is given. Work
around (know your types and type them quickly heh. If not press ignore
till it goes away, sometimes you can type in the types and then press
the ignores)

(4) I prefer the indentation based syntax so (4) is probably more
common for me. For example the intellisense will tell me a variable
has not been declared when it clearly already has. Errors like [parse
error near operator '|': expecting '{' after 'match (e)'] are so
common that I tend to ignore red squiggly lines and compile and look
at output window for errors.

nemerle fanboy

unread,
Oct 27, 2008, 6:34:34 PM10/27/08
to Nemerle Forum
On Oct 27, 5:25 pm, VladD2 <v...@rsdn.ru> wrote:
> 2008/10/27 nemerle fanboy <nemerle.is_c...@yahoo.it>:
>
> > 1) types referenced from other assemblies cause "unbound type name"
> > errors (often but not always)
>
> Please, create small test which reproduce error and report it inhttp://nemerle.org/bugs/bug_report_page.php

It's not something that I can do easily. Sometime it works fine, some
time it doesn't. Sometime it stops working after some of the exception
dialogs. How could I make a small test?
Currently I'm stuck: I made some changed to the Nemerle code and now
when I try to compile my solution VS locks: I see no NCC running but
DW20.exe that, as I'm told, is creating some crash dump file using a
lot of CPU. VC never is not responsive.
I restarted VS 3 times now, fixed a Nemerle error with an external
editor (the first time it crashed I was completing some changes: an
abstract method from a C# class was not implemented) but VS keeps
locking.
This is the worst problem I had with Nemerle.

> > 2) macro assemblies updates are not detected, obviously causing all
> > sorts of errors (I think this is always, after the project load)
>
> Use "Project references" for you own macro-assemblies, and rebuild it
> if it change.

Of course I make a specific project for the macros and reference it in
all projects where I want to use them.

The macro work if I rebuild everything but the editor doesn't apply
the changes to the code that is being edited.
The result is more fake error messages.
If I close everything and reopen the solution the editor uses the
updated macros.

> > 3) while you edit some code, the syntax highlight engine or something
> > else stumbles on obviouvsly incomplete code and causes nagging
> > repeated exception panels (sometimes even Visual Studio crashes!).
>
> May be you use debug build? In latest version of VS Integration all
> assertion checks only in debug build.

A debug build of Nemerle and the Nemerle VS Integration?
I think I just downloaded the whole package from your site. I don't
know how do you compile it. Where do I download a Release installer
for Nemerle?
I played a bit the the source code (in Debug mode) but I NEVER
installed it or used it in my projects. I just run it from the command
line.

> > 4) real and fake error messages are mixed and you don't know what's
> > going on. Especially problematic when you are learning Nemerle or a
> > switching continuously from C# to Nemerle and back.
>
> What is "fake error messages"?

They are errors added into the VS Error List by the syntax highlight
engine or other components of the editor and that most of the times do
not correspond to real error because if the problem described above.

> > I'm using Nemerle in a mixed C#/Nemerle solution and it would be
> > difficult to use Visual Studio for C# and something else for Nemerle.
>
> > Please fix the Visual Studio integration!
>
> Report bugs in Mantis and we will be try fix it.

As I explained they are hard to report in more detail.

nemerle fanboy

unread,
Oct 27, 2008, 6:53:08 PM10/27/08
to Nemerle Forum
On Oct 27, 11:34 pm, nemerle fanboy <nemerle.is_c...@yahoo.it> wrote:

> Currently I'm stuck: I made some changed to the Nemerle code and now
> when I try to compile my solution VS locks: I see no NCC running but
> DW20.exe that, as I'm told, is creating some crash dump file using a
> lot of CPU. VC never is not responsive.
> I restarted VS 3 times now, fixed a Nemerle error with an external
> editor (the first time it crashed I was completing some changes: an
> abstract method from a C# class was not implemented) but VS keeps
> locking.
> This is the worst problem I had with Nemerle.

I attemped to build the project from the command line, running
msbuild. It's the very compiler ncc that is causing the problem.
It crashes and XP starts that DW20.exe to make the dump.

nemerle fanboy

unread,
Oct 27, 2008, 7:13:40 PM10/27/08
to Nemerle Forum
This was the code that made NCC crash:

public override GetOutputData() : IEnumerable[IDatum]
{ array[].Append(Channels) }

"Channels" is an array of a type implementing IDatum. The code is
wrong and I replaced it with

public override GetOutputData() : IEnumerable[IDatum]
{ Channels.ConvertAll(fun (x) { x : IDatum }) }

but not a reason for NCC to crash and to absolutely not a reason for
it to lock VS. :P



VladD2

unread,
Oct 27, 2008, 11:48:17 PM10/27/08
to nemer...@googlegroups.com
2008/10/27 Sir.De...@gmail.com <Sir.De...@gmail.com>:

> (4) I prefer the indentation based syntax so (4) is probably more
> common for me. For example the intellisense will tell me a variable
> has not been declared when it clearly already has. Errors like [parse
> error near operator '|': expecting '{' after 'match (e)'] are so
> common that I tend to ignore red squiggly lines and compile and look
> at output window for errors.

The indentation syntax not support yet in VS Integration. It depends
on compiler implementation details. Sorry.

Andrew Davey

unread,
Nov 3, 2008, 12:00:40 AM11/3/08
to Nemerle Forum
I get the "fake error messages" too.

The Error window in VS reports loads of errors, but the actual
compiler output has none (or different errors).
It looks like the background compile is failing for some reason.

I have learnt to only look at the Output window. Which is a shame,
since it's not as easy to read.

I also get regular sporadic crashes, they range from loss of proper
intelliense to loss of all syntax coloring and even assert dialogs
upon attempting code completion.
Sometimes I have to delete my solution's ".suo" file just to get VS to
load without hanging.

I really appreciate how hard getting VS integration is. And I know
it's annoying to have people report bugs that can't be reproduced in a
simple test harness.
I'm not sure how to proceed really. I'm going to keep struggling on
since I find Nemerle to be such a fantastic language.
Perhaps a simpler VS integration with just syntax coloring would be a
better temporary solution. I feel mixed emotions recommending Nemerle
to people who will write it off at the first sign of VS bugs...



On Oct 27, 11:25 am, VladD2 <v...@rsdn.ru> wrote:
> 2008/10/27 nemerle fanboy <nemerle.is_c...@yahoo.it>:
>
> > 1) types referenced from other assemblies cause "unbound type name"
> > errors (often but not always)
>
> Please, create small test which reproduce error and report it inhttp://nemerle.org/bugs/bug_report_page.php
Reply all
Reply to author
Forward
0 new messages