Здесь можно лицезреть (и попробовать) альфа-версию интеграции с VS 2010.
Инструкция по сборке
Для сборки нужно:
1. Установленная VS 2010 (не экспресс).
2. Установленный VS 2010 SDK.
3. Тартила SVN или ее заменитель.
Для сборки нужно:
1. Деинсталировать Nemerle 1.0 (если был установлен).
2. Удалить содержимое каталога %ProgramFiles%\Nemerle.
3. Собрать компилятор с помощью DevBuildQuick-4.cmd.
4. Скопировать содержимое каталога Nemerle\bin\Debug\4.0\Stage1\ в %ProgramFiles%\Nemerle.
5. Открыть VS 2010 с правами администратора (важно!). Для этого можно выбрать в контекстном меню шортката "Microsoft Visual Studio 2010" выбрать пункт "Запустить от имени администратора".
6. В VS 2010 открыть проект Nemerle\snippets\VS2010\Nemerle.VS2010.sln и собрать его (лучше выполнить Rebuild all).
7. Сделать активным (запускаемым) проект Nemerle.VisualStudio.
8. В свойствах проекта Nemerle.VisualStudio на закладке Debug:
Start external program: C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Comand line arguments: /rootSuffix Exp
9. Нажать F5 и лицезреть работу интеграции под управлением VS 2010.
Отлов, систематизация и каталогизация багов категорически приветствуется!
ЗЫ
К слову, процедура установки Интеграции теперь упростилась донельзя. После сборки Nemerle.VS2010.sln достаточно найти Nemerle.VisualStudio.vsix (находится в каталоге Nemerle\snippets\VS2010\bin\Debug), нажать на нем Enter и пару раз нажать на кнопку. Только это надо делать с правами администратора. После этого интеграция будет доступна в VS 2010. Удалить ее так же просто. Нужно открыть студию, в меню Tools выбрать пункт Extension Manager..., в появившемся диалоге найти расширение "Nemerle Visual Studio 2010 Integration" и нажать на нам кнопку Uninstall.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Отлов, систематизация и каталогизация багов категорически приветствуется!
В Nemerle.VisualStudio.csproj указаны старые сборки с VS2008 и если ее нет то при сборке проекта — куча ошибок.
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.VisualStudio.Web.Application, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, VladD2, Вы писали:
VD>>Отлов, систематизация и каталогизация багов категорически приветствуется!
ДА>В Nemerle.VisualStudio.csproj указаны старые сборки с VS2008 и если ее нет то при сборке проекта — куча ошибок. ДА> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> ДА> <Reference Include="Microsoft.VisualStudio.Web.Application, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
И это еще не все сборки со старой версией. В общем вот патч:
---------------------------
Microsoft Visual Studio
---------------------------
The Application Data folder for Visual Studio could not be created.
---------------------------
ОК
---------------------------
Здравствуйте, VladD2, Вы писали:
VD>Отлов, систематизация и каталогизация багов категорически приветствуется!
Макрос PegGrammar как-то уж больно нервно реагирует на некорректности в грамматике. Иногда выдает совсем странные сообщения, например:
---------------------------
Assertion Failed: Abort=Quit, Retry=Debug, Ignore=Continue
---------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
at Nemerle.Peg.Parsing._N_parseSequence__17507.apply(Token tok) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 215
at Nemerle.Peg.Parsing._N_parseZeroOrMany_17434(Token tok, Function`2 parseDelemiter, Function`2 parseParser) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 64
at Nemerle.Peg.Parsing._N_parseOneOrMany_17474(_N_closure_17419 _N_ParseEbnf_cp_17473, Token tok, Function`2 parseDelemiter, Function`2 parseParser, String expected) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 99
at Nemerle.Peg.Parsing._N_parseOrderedChoice_17516(_N_closure_17419 _N_ParseEbnf_cp_17515, Token tok) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 230
at Nemerle.Peg.Parsing._N_parseRule_17722(_N_closure_17419 _N_ParseEbnf_cp_17721, Token tok, Int32 ruleId) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 363
at Nemerle.Peg.Parsing.ParseEbnf(Typer typer, Token token, Grammar grammar) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 398
at Nemerle.Peg.Parsing.ParseRules(Typer typer, NameRef startRule, PExpr rules) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Parsing.n:line 28
at Nemerle.Peg.PegGrammar_type_preaddMacro.Run(Typer _N__1, list`1 parms) in D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Macro.n:line 29
at PegGrammar_type_preaddMacro.Run(Typer _N__1, list`1 parms) D:\SVN\Nemerle.new\snippets\peg-parser\Nemerle.Peg.Macros\Macro.n(29)
at AttributeMacroExpansion.Expand() D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(107)
at TypesManager.ExpandMacros() D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(181)
at TypeBuilder.process_macro_attributes(MacroPhase stage) D:\SVN\Nemerle.new\ncc\hierarchy\TypeBuilder.n(2677)
at _N__N_lambda__58791__58877.apply_void(TypeBuilder x) D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(345)
at _N_maybe_f__58640.apply_void(TypeBuilder ti) D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(258)
at NList.Iter(list`1 l, FunctionVoid`1 f) D:\SVN\Nemerle.new\lib\list.n(920)
at list`1.Iter(FunctionVoid`1 f) D:\SVN\Nemerle.new\lib\list.n(317)
at TypesManager.Iter(list`1 builders, FunctionVoid`1 f) D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(265)
at TypesManager.Iter(FunctionVoid`1 f) D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(276)
at TypesManager.Run() D:\SVN\Nemerle.new\ncc\hierarchy\TypesManager.n(347)
at ManagerClass.Run() D:\SVN\Nemerle.new\ncc\passes.n(521)
at MainClass.main_with_catching() D:\SVN\Nemerle.new\ncc\main.n(82)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at ThreadHelper.ThreadStart()
---------------------------
Прервать Повтор Пропустить
---------------------------
Судя по всему не переваривает пустое правило, а должен если судить по описанию.
И есть ощущение что после этого VS падает спустя какое-то время (от нескольких секунд до несколько минут).
Вот минимальный пример:
using System;
using Nemerle.Peg;
namespace Test
{
[PegGrammar(start,
grammar
{
start = ;
})
]
class Class1
{
}
}
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Судя по всему не переваривает пустое правило, а должен если судить по описанию. ДА>И есть ощущение что после этого VS падает спустя какое-то время (от нескольких секунд до несколько минут). ДА>Вот минимальный пример:
ДА>
VD>4. Скопировать содержимое каталога Nemerle\bin\Debug\4.0\Stage1\ в %ProgramFiles%\Nemerle.
Т.е. параллельно нельзя использовать 2008 и 2010.
Может стоит их разделить, скажем: %ProgramFiles%\Nemerle\dotnet-3.5, %ProgramFiles%\Nemerle\donet-4.0 ?
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>В Nemerle.VisualStudio.csproj указаны старые сборки с VS2008 и если ее нет то при сборке проекта — куча ошибок. ДА> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> ДА> <Reference Include="Microsoft.VisualStudio.Web.Application, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>И это еще не все сборки со старой версией. В общем вот патч:
У тебя нет прав в репозитории?
ДА>При сборке 2-ы выдается окно с ошибкой:
Кто такая "двы" (2-ы)?
ДА>
ДА>---------------------------
ДА>Microsoft Visual Studio
ДА>---------------------------
ДА>The Application Data folder for Visual Studio could not be created.
ДА>---------------------------
ДА>ОК
ДА>---------------------------
ДА>
Это после патча или до?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Дьяченко Александр, Вы писали:
ДА>>Создал Issue-1320. Пусть будет и в трекере.
VD>Это проявляется только на VS 2010? Или на 2008-й тоже?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Дьяченко Александр, Вы писали:
ДА>>В Nemerle.VisualStudio.csproj указаны старые сборки с VS2008 и если ее нет то при сборке проекта — куча ошибок. ДА>> <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> ДА>> <Reference Include="Microsoft.VisualStudio.Web.Application, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
VD>Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK.
Нет у меня VS2008 и SDK тоже нет. При сборке прям сообщение что сборку найти не может.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Дьяченко Александр, Вы писали:
ДА>>И это еще не все сборки со старой версией. В общем вот патч:
VD>У тебя нет прав в репозитории?
Нету.
ДА>>При сборке 2-ы выдается окно с ошибкой:
VD>Кто такая "двы" (2-ы)?
дважды.
ДА>>
ДА>>---------------------------
ДА>>Microsoft Visual Studio
ДА>>---------------------------
ДА>>The Application Data folder for Visual Studio could not be created.
ДА>>---------------------------
ДА>>ОК
ДА>>---------------------------
ДА>>
VD>Это после патча или до?
И так, и так. Но пакет создается и нормально ставится.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, VladD2, Вы писали:
VD>>Это после патча или до?
ДА>И так, и так. Но пакет создается и нормально ставится.
Это я гоню — без патча у меня вообще ничего не собирается и таких сообщений естественно нет.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Здравствуйте, VladD2, Вы писали:
VD>>Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK.
ДА>Нет у меня VS2008 и SDK тоже нет. При сборке прям сообщение что сборку найти не может.
Слушай а у тебя вообще работает собранная и поставленная из пакета интеграция? А то у меня она живет от 10 секунд од 10 минут в среднем минуты 1.5-2.
Я пробовал приатачится к ней и посмотреть что происходит, но там какие-то странные процессы происходят.
В выделенном месте говорит что у тебя не Com объект. То же в практически сразу.
public void ProcessHiddenRegions(List<NewHiddenRegion> regions, int sourceVersion)
{
if (!OutliningEnabled)
return;
//var timer = Stopwatch.StartNew();
//var timerAll = Stopwatch.StartNew();
//Debug.WriteLine("SetRegions: begin " + timer.Elapsed); timer.Reset(); timer.Start();
#region Получаем список региотов которые уже есть в редакторе.
// Регионы в редакторе могут быть
// по двум причинам:
// 1. Она билы добавлены предыдущим запуском этого метода.
// 2. Они были загружены самим редакторм для востановления состояния состояния
// (открыты / закрыты) регионов после открытия файла (обычно случается только
// если файл открывается при открытом Solution).
// При этом студия не востанавливает баннеры, так что их приходится обновлять
// (см. коментарий к вызову region.SetBanner()).
IVsHiddenTextSession session = GetHiddenTextSession();
var aspan = new TextSpan[1];
aspan[0] = GetDocumentSpan();
var aregion = new IVsHiddenRegion[1];
var oldRegionsMap = new Dictionary<TextSpan, IVsHiddenRegion>(TextSpanEqCmp.Instance);
IVsEnumHiddenRegions ppenum = null;
try
{
ErrorHandler.ThrowOnFailure(session.EnumHiddenRegions((uint)FIND_HIDDEN_REGION_FLAGS.FHR_ALL_REGIONS, HiddenRegionCookie, aspan, out ppenum));
uint fetched;
while (ppenum.Next(1, aregion, out fetched) == NativeMethods.S_OK && fetched == 1)
{
var region = aregion[0];
int regTypeInt;
ErrorHandler.ThrowOnFailure(region.GetType(out regTypeInt));
uint dwData;
region.GetClientData(out dwData);
var regType = (HIDDEN_REGION_TYPE)regTypeInt;
if (regType != HIDDEN_REGION_TYPE.hrtCollapsible)// || dwData != 0 && dwData != HiddenRegionCookie)
continue;
ErrorHandler.ThrowOnFailure(region.GetSpan(aspan));
TextSpan s = aspan[0];
//var loc = Utils.LocationFromSpan(FileIndex, s);
oldRegionsMap[s] = region;
}
}
finally
{
if (ppenum != null)
Marshal.ReleaseComObject(ppenum);
}
//Debug.WriteLine("SetRegions: old regions fetched " + timer.Elapsed); timer.Reset(); timer.Start();
#endregion
3. Дальше совсем какой-то страх и ужос...
4. Еще заметил что PegGrammar или VS2010 пытается создать файлик с генерированных исходников в странных местах то в C:\Windows\System32, то в C:\Program Files (x86)\...\ куда VS2010 поставленна.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Слушай а у тебя вообще работает собранная и поставленная из пакета интеграция? А то у меня она живет от 10 секунд од 10 минут в среднем минуты 1.5-2.
Я же сказал — альфа. Я усилием воли за две ночи ее заставил "взлететь". Теперь придется еще пару недель летать обучать.
Вылеты — это скорее всего кривой WpfHint. Вылеты связанные с ним я вроде бы пофиксил. Но проблем еще хватает.
ДА>Я пробовал приатачится к ней и посмотреть что происходит, но там какие-то странные процессы происходят.
Да там вроде все очевидно вылетало сообщение о том, что вызван делегат который уже собран сборщиком мусора.
ДА>1. D:\SVN\Nemerle.new\snippets\VS2010\Nemerle.VisualStudio\LanguageService\NemerleTypeAndMemberDropdownBars.cs
ДА>Где-то в выделенном месте говорит что выходит за границы списка. Прилетает практически на старте — достаточно ткнуть куда-нить в исходники.
У меня не воспроизводится.
ДА>2. D:\SVN\Nemerle.new\snippets\VS2010\Nemerle.VisualStudio\LanguageService\NemerleSource.cs
ДА>В выделенном месте говорит что у тебя не Com объект. То же в практически сразу.
Это я уже пофиксил. Теперь тем видимо кома нет. вот и вылетает.
Вообще это не критичная ошибка. Она приводила только к тому, что аутланинг не работал.
ДА>3. Дальше совсем какой-то страх и ужос...
Ну, запускать студию с перехватом обработанных исключений — это не самое веселое времяпрепровождение .
В МС пишут так, что без тонны исключений ничего вообще не пашет.
ДА>4. Еще заметил что PegGrammar или VS2010 пытается создать файлик с генерированных исходников в странных местах то в C:\Windows\System32, то в C:\Program Files (x86)\...\ куда VS2010 поставленна.
Это потому что текущий каталог "гуляет" во время работы макроса. Надо конечно с этим разобраться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>>>У тебя нет прав в репозитории? ДА>>Нету. VD>Присылай гугль-экаунт — добавлю.
Не вопрос, но большой активности не обещаю особенно если мой проект загнется от недостатка энтузиазма.
Аккаунт — DyachenkoA собака и gmail точка ком
Или надо что-то другое?
Кстати в сгенерированных для парсера исходниках указывается в ошибках номера строк за 10 тысяч — это нормально?
ДА>>>>При сборке 2-ы выдается окно с ошибкой: VD>>>Кто такая "двы" (2-ы)? ДА>>дважды. VD>Не надо меня так озадачивать .
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, _nn_, Вы писали:
VD>>>4. Скопировать содержимое каталога Nemerle\bin\Debug\4.0\Stage1\ в %ProgramFiles%\Nemerle. __>>Т.е. параллельно нельзя использовать 2008 и 2010.
VD>Пока, да.
__>>Может стоит их разделить, скажем: %ProgramFiles%\Nemerle\dotnet-3.5, %ProgramFiles%\Nemerle\donet-4.0 ?
VD>Да, стоит. Можешь заняться.
В таком случае в билде нужно дать те же имена.
А куда тогда $(Nemerle) будет указывать ?
Здравствуйте, VladD2, Вы писали:
ДА>>Кстати в сгенерированных для парсера исходниках указывается в ошибках номера строк за 10 тысяч — это нормально?
VD>Вряд ли. Если только очень большой парсер. Собственно можно же проверить открыв файл.
Строчка то в файле есть, просто уж больно дофига всего в нем — примерно 400 с небольшим КБ.
Парсер там не слишком большой — меньше 20 КБ. Для Модулы-2.
Здравствуйте, VladD2, Вы писали:
VD>Отлов, систематизация и каталогизация багов категорически приветствуется!
Появился систематический баг NemerleIdeBuilderLogger — зависает при сборке.
В принцепе сейчас IDELogger сделан лучше и от него можно наследоваться.
Я сделал наследника вроде перетащил все отличия внесенные в старый — вроде работает, могу закомитить.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Появился систематический баг NemerleIdeBuilderLogger — зависает при сборке. ДА>В принцепе сейчас IDELogger сделан лучше и от него можно наследоваться. ДА>Я сделал наследника вроде перетащил все отличия внесенные в старый — вроде работает, могу закомитить.
Комить. Я потом проверю.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>>>Кстати в сгенерированных для парсера исходниках указывается в ошибках номера строк за 10 тысяч — это нормально?
VD>>Вряд ли. Если только очень большой парсер. Собственно можно же проверить открыв файл.
ДА>Строчка то в файле есть, просто уж больно дофига всего в нем — примерно 400 с небольшим КБ. ДА>Парсер там не слишком большой — меньше 20 КБ. Для Модулы-2.
Ну, так строка совпадает с номером?
Кода действительно может быть много. Особенно в релизе.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Отлов, систематизация и каталогизация багов категорически приветствуется!
Win7/x64. Сношу то что было. Из "Program Files (x86)" папка Nemerle отлично удаляется, но в "Program Files" осталась Nemerle.lnk.
В Console Application нет референса на System.Core.
Ворнинги сложно исправить?
------ Build started: Project: Nemerle.VisualStudio, Configuration: Debug Any CPU ------
D:\Develop\Projects\Nemerle\snippets\VS2010\Nemerle.VisualStudio\NemerlePackage.cs(105,3): warning CS0618: 'Microsoft.VisualStudio.Shell.InstalledProductRegistrationAttribute.InstalledProductRegistrationAttribute(bool, string, string, string)' is obsolete: 'This InstalledProductRegistrationAttribute constructor has been deprecated. Please use other constructor instead.'
warning CS1762: A reference was created to embedded interop assembly 'c:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.10.0.dll' because of an indirect reference to that assembly created by assembly 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Web.Application\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Web.Application.dll'. Consider changing the 'Embed Interop Types' property on either assembly.
warning CS1762: A reference was created to embedded interop assembly 'c:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Designer.Interfaces.dll' because of an indirect reference to that assembly created by assembly 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Web.Application\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Web.Application.dll'. Consider changing the 'Embed Interop Types' property on either assembly.
warning CS1762: A reference was created to embedded interop assembly 'c:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Designer.Interfaces.dll' because of an indirect reference to that assembly created by assembly 'c:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.Design.dll'. Consider changing the 'Embed Interop Types' property on either assembly.
warning CS1762: A reference was created to embedded interop assembly 'c:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Designer.Interfaces.dll' because of an indirect reference to that assembly created by assembly 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Design\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Design.dll'. Consider changing the 'Embed Interop Types' property on either assembly.
Это вот ваш вывод:
>>>> ##### Building types tree!
Close()
Close()
Building types tree...
System.Windows.Data Error: 4 : …
<<<< ##### Building types tree finish!
При сохранении только что созданного Console Application говорится
---------------------------
Microsoft Visual Studio
---------------------------
The operation could not be completed. Интерфейс не поддерживается
---------------------------
OK
---------------------------
Запускал под отладчиком, в него не вываливается.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, VladD2, Вы писали:
ДА>>>>Кстати в сгенерированных для парсера исходниках указывается в ошибках номера строк за 10 тысяч — это нормально? VD>>>Вряд ли. Если только очень большой парсер. Собственно можно же проверить открыв файл. ДА>>Строчка то в файле есть, просто уж больно дофига всего в нем — примерно 400 с небольшим КБ. ДА>>Парсер там не слишком большой — меньше 20 КБ. Для Модулы-2. VD>Ну, так строка совпадает с номером?
Не совсем. Есть один момент — там концы строк разные.
Элементы верхнего уровня поля и функции завершаются одно-байтовым концом строки, а внутри функции используется двух байтовый (\r\n). Поэтому если открыть в блокноте — получается номера строк не совпадают. Очень долго разбирался.
И кстати:
1) в объявлении поля — "mutable" 2 раза и ";" в конце не хватает;
2) в некоторых случаях не ловит несогласованность м/у правилом в грамматике и его обработчиком — в результате ошибка в этом сгенерированном файле и понять что произошло очень трудно. Постараюсь минимальный пример соорудить.
VD>Кода действительно может быть много. Особенно в релизе.
Ок. Это вроде в отладочной версии. Сколько же будет в релизе.
Здравствуйте, VladD2, Вы писали:
ДА>>Появился систематический баг NemerleIdeBuilderLogger — зависает при сборке. ДА>>В принцепе сейчас IDELogger сделан лучше и от него можно наследоваться. ДА>>Я сделал наследника вроде перетащил все отличия внесенные в старый — вроде работает, могу закомитить.
VD>Комить. Я потом проверю.
_FR>Win7/x64. Сношу то что было. Из "Program Files (x86)" папка Nemerle отлично удаляется, но в "Program Files" осталась Nemerle.lnk.
Видимо он менялся вручную. Надо проверить на свежей версии. Если не удаляется сразу после установки и сноса, то это баг инсталлятора.
_FR>В Console Application нет референса на System.Core.
Ага. Я тоже заметил. Надо фиксить.
_FR>Ворнинги сложно исправить?
Черт его знает. Можешь сам попробовать.
_FR>Это вот ваш вывод: _FR>
_FR>
>>>>> ##### Building types tree!
_FR>Close()
_FR>Close()
_FR>Building types tree...
_FR>System.Windows.Data Error: 4 : …
_FR><<<< ##### Building types tree finish!
_FR>
Хм. Странно. Какова последовательность действий?
_FR>При сохранении только что созданного Console Application говорится _FR>
_FR>The operation could not be completed. Интерфейс не поддерживается
_FR>Запускал под отладчиком, в него не вываливается. _FR>
У меня это не воспроизводится. Проекты создаются и сохраняются нормально.
Попробуй выполнить Ребилд всего проекта и запустить его еще раз. При этом проследи, чтобы все другие копии студии были закрыты.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Не совсем. Есть один момент — там концы строк разные. ДА>Элементы верхнего уровня поля и функции завершаются одно-байтовым концом строки, а внутри функции используется двух байтовый (\r\n). Поэтому если открыть в блокноте — получается номера строк не совпадают. Очень долго разбирался.
А зачем в блокноте то открывть? Открывай в студии. Она с концами строк умеет работать.
ДА>И кстати: ДА>1) в объявлении поля — "mutable" 2 раза и ";" в конце не хватает;
Ой вывод в текст там вообще кривой. Но на корректность работы и правильность указания сообщений об ошибках это не должно влиять.
ДА>2) в некоторых случаях не ловит несогласованность м/у правилом в грамматике и его обработчиком — в результате ошибка в этом сгенерированном файле и понять что произошло очень трудно. Постараюсь минимальный пример соорудить.
Офтоп: Не надо сокращать слова. Я не телепат. Я не понимаю что такое м/у.
Этот случай лучше описать отдельно. И хоршо бы проверить все это дело в 2008-ой студии. Иначе не ясно являются ли ошибки косяками в PegGrammar или это косяки переноса компилятора на дотнет 4.0.
Попробуй создать минимальный пример воспроизводящий ошибку.
VD>>Кода действительно может быть много. Особенно в релизе.
ДА>Ок. Это вроде в отладочной версии. Сколько же будет в релизе.
Забыл совсем. Текст в релизе, вроде бы, не генерируется. Его все равно невозможно отлаживать.
ЗЫ если есть рассинхронизация между местом ошибки и строкой на которую указывает сообщение, то это баг и его надо фиксить. только смотреть текст надо в студии или хотя бы в SciTE.exe, так как другие редакторы могут некорректно работать с концами строк.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ДА>>Не совсем. Есть один момент — там концы строк разные. ДА>>Элементы верхнего уровня поля и функции завершаются одно-байтовым концом строки, а внутри функции используется двух байтовый (\r\n). Поэтому если открыть в блокноте — получается номера строк не совпадают. Очень долго разбирался.
VD>А зачем в блокноте то открывть? Открывай в студии. Она с концами строк умеет работать.
Постестнялся такой здоровый в студии открывать. Потом когда уже открыл — тогда и разобрался где косяк. Но по идее разные типы концов строк это же не правильно?
ДА>>И кстати: ДА>>1) в объявлении поля — "mutable" 2 раза и ";" в конце не хватает;
VD>Ой вывод в текст там вообще кривой. Но на корректность работы и правильность указания сообщений об ошибках это не должно влиять.
А где вывод формируется может я чуть подправлю...
ДА>>2) в некоторых случаях не ловит несогласованность м/у правилом в грамматике и его обработчиком — в результате ошибка в этом сгенерированном файле и понять что произошло очень трудно. Постараюсь минимальный пример соорудить.
VD>Офтоп: Не надо сокращать слова. Я не телепат. Я не понимаю что такое м/у.
Это — между. Ок постараюсь не сокращать.
VD>Этот случай лучше описать отдельно. И хоршо бы проверить все это дело в 2008-ой студии. Иначе не ясно являются ли ошибки косяками в PegGrammar или это косяки переноса компилятора на дотнет 4.0. VD>Попробуй создать минимальный пример воспроизводящий ошибку.
Хорошо попробую создать минимальный пример — проверишь в VS2008?
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Постестнялся такой здоровый в студии открывать.
Как раз студия рассчитана на файлы большого размера, а нотпэд — нет. Плюс в нотпэде нет средств перехода к строке по ее номеру, а в студии есть.
ДА>Потом когда уже открыл — тогда и разобрался где косяк. Но по идее разные типы концов строк это же не правильно?
В сгенерированном файле, конечно косяк. Но в обычных — это норма вещей. Рассчитывать на то что концы строк будут в одном формате нельзя. Все компиляторы и грамотно написанные IDE пасут все возможные варианты концов строк.
ДА>А где вывод формируется может я чуть подправлю...
Здесь: PrettyPrint.n
Но там не все просто.
1. Есть два типа дерева PExpr и TExpr.
2. При генерации текста могут задаваться локешоны (местоположение) для отладночной информации. Так что нельзя генерировать большие куски теста. Нужно генерировать текст для каждой мелкой сущности, чтобы в этой сущности правильно указывались бы локешноны.
3. Есть макросы для которых сгенерировать хорошо читаемый человеком код не так то просто.
ДА>Это — между. Ок постараюсь не сокращать.
О! Две буквы сэкономил . Оно того не стоит.
VD>>Этот случай лучше описать отдельно. И хоршо бы проверить все это дело в 2008-ой студии. Иначе не ясно являются ли ошибки косяками в PegGrammar или это косяки переноса компилятора на дотнет 4.0. VD>>Попробуй создать минимальный пример воспроизводящий ошибку.
ДА>Хорошо попробую создать минимальный пример — проверишь в VS2008?
Желательно. Сейчас сообщения об ошибках в 2010 переодически врут. Так что на ее результаты я бы не стал пока опираться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Это то, что я вижу в Output. Вопрос собственно о "System.Windows.Data Error: 4 :" — стоит исправлять?
_FR>>При сохранении только что созданного Console Application говорится _FR>>
_FR>>The operation could not be completed. Интерфейс не поддерживается
_FR>>Запускал под отладчиком, в него не вываливается. _FR>>[/list]
VD>У меня это не воспроизводится. Проекты создаются и сохраняются нормально. VD>Попробуй выполнить Ребилд всего проекта и запустить его еще раз. При этом проследи, чтобы все другие копии студии были закрыты.
Попробовал :о) Теперь компилятор в студии работает, а отладчик нет :о)) Буду разбираться.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, VladD2, Вы писали:
ДА>>А где вывод формируется может я чуть подправлю... VD>Здесь: PrettyPrint.n VD>Но там не все просто. VD>1. Есть два типа дерева PExpr и TExpr. VD>2. При генерации текста могут задаваться локешоны (местоположение) для отладночной информации. Так что нельзя генерировать большие куски теста. Нужно генерировать текст для каждой мелкой сущности, чтобы в этой сущности правильно указывались бы локешноны. VD>3. Есть макросы для которых сгенерировать хорошо читаемый человеком код не так то просто.
Погляжу может чего интересного получится.
ДА>>Это — между. Ок постараюсь не сокращать. VD>О! Две буквы сэкономил . Оно того не стоит.
Со струденчиских времен осталось.
VD>>>Этот случай лучше описать отдельно. И хоршо бы проверить все это дело в 2008-ой студии. Иначе не ясно являются ли ошибки косяками в PegGrammar или это косяки переноса компилятора на дотнет 4.0. VD>>>Попробуй создать минимальный пример воспроизводящий ошибку. ДА>>Хорошо попробую создать минимальный пример — проверишь в VS2008? VD>Желательно. Сейчас сообщения об ошибках в 2010 переодически врут. Так что на ее результаты я бы не стал пока опираться.
Ну оно не собиралось и реально ошибка была. Просто она на уровне граматики не определялось (а должна), только в сгенерренном файле.
Здравствуйте, VladD2, Вы писали:
VD>Как раз студия рассчитана на файлы большого размера, а нотпэд — нет. Плюс в нотпэде нет средств перехода к строке по ее номеру, а в студии есть.
В notepad есть способ перехода к строке по её номеру — Ctrl + G
Здравствуйте, VladD2, Вы писали:
VD>Можно колстэк показать?
Колстэк показать нельзя — его не видно... студия при запуске выдаёт такое окно...
У меня получилось запустить из фара из командной строки (c параметрами).
Создал консольное приложение
Обнаружилась такие ошибки
Console — подсвечивается голубым цветом в выражении using System.Console;
Ругается на using System.Linq; — refenced namespace System.Linq does not exists
посмотрел в свойства References\System.dll:
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Здравствуйте, Denom, Вы писали:
D>Ругается на using System.Linq; — refenced namespace System.Linq does not exists
D>посмотрел в свойства References\System.dll: D>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Denom, Вы писали:
D>>Ругается на using System.Linq; — refenced namespace System.Linq does not exists
D>>посмотрел в свойства References\System.dll: D>>C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
Z>Linq в System.Core
Тогда нужно либо добавить System.Core в References снипета ConsoleApplication или убрать System.Linq из uses в снипете.
Какой вариант предпочтительнее?
Еще, по-мелочи:
иконки для Wpf и Web приложений остались питоновские (при создании нового проекта)
И некоторые типы приложений два раза в списке присутствуют
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, nCdy, Вы писали:
C>>Интересный Баг ... Проект не открывается когда находится в папке под наблюдением Тортилы git
VD>Ну, а симптомы то какие-то есть? Исключения там или еще что-то...
Мне не удалось воспроизвести, а попыток было много, сейчас всё работает ... )
Здравствуйте, _FRED_, Вы писали:
_FR>Это то, что я вижу в Output. Вопрос собственно о "System.Windows.Data Error: 4 :" — стоит исправлять?
Прежде чем исправлять нужно понять, что происходит. Сообщение явно не штатное. Но что его вызывает я не знаю. Сам я такого не замечал. Видимо пропустил.
_FR>Попробовал :о) Теперь компилятор в студии работает, а отладчик нет :о)) Буду разбираться.
Хм. Час от часу не легче. У меня и отладчик работал.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Аноним, Вы писали:
VD>>Как раз студия рассчитана на файлы большого размера, а нотпэд — нет. Плюс в нотпэде нет средств перехода к строке по ее номеру, а в студии есть. А>В notepad есть способ перехода к строке по её номеру — Ctrl + G
Я уж думал, что не заметил новой фичи. Сейчас попробовал — нет такой возможности. Да и учитывая кривую работу со строками толку от нее все равно не было бы.
2 ALL: Народ не занимайтесь херней. Не пытайтесь открывать код в нотпэде. Неужели долго в гугле найти Сцинтилу? Сделайте поиск по SciTE.exe и вперед.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Denom, Вы писали:
D>Колстэк показать нельзя — его не видно... студия при запуске выдаёт такое окно...
Сделай так. Запусти студию из под студии (под отладкой).
Дойди до момента непосредственно предшествующего появлению ошибки.
Включи перехват обработанных исключений (все управляемых).
Выполни действие приводящее к появлению ошибки.
В результате, с огромной вероятностью, вылезет это дело в виде исключения. Ну, и там уже вынь колстек и покажи мне.
Ну, или опиши действия приводящие к ошибке, я попробую воспроизвести сам.
D>У меня получилось запустить из фара из командной строки (c параметрами).
Что запустить?
D>Создал консольное приложение D>Обнаружилась такие ошибки
D>Console — подсвечивается голубым цветом в выражении using System.Console;
Ну, правильно — это же тип.
D>Ругается на using System.Linq; — refenced namespace System.Linq does not exists
Это косяк шаблона проекта. Просто подключи System.Core.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, nCdy, Вы писали:
C>Мне не удалось воспроизвести, а попыток было много, сейчас всё работает ... )
Возможно это был эффект от несоответствия версий ДЛЛ-ей. В случае появления странностей первым делом надо попытаться пересобрать (полный ребилд) интеграцию.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Denom, Вы писали:
Z>>Linq в System.Core
D>Тогда нужно либо добавить System.Core в References снипета ConsoleApplication или убрать System.Linq из uses в снипете.
D>Какой вариант предпочтительнее?
Первый. В 2008-й так и есть. Просто видимо шаблон криво перенесли. Нужно их тупо обновить из 2008-й интеграции.
D>Еще, по-мелочи: D>иконки для Wpf и Web приложений остались питоновские (при создании нового проекта) D>И некоторые типы приложений два раза в списке присутствуют
Их нужно вообще удалить. Качественной поддержки нет. А полуфабрикаты только будут отвращать народ.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: [VS 2010] Альфа
От:
Аноним
Дата:
29.03.11 15:24
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Я уж думал, что не заметил новой фичи. Сейчас попробовал — нет такой возможности. Да и учитывая кривую работу со строками толку от нее все равно не было бы.
Она есть в меню Edit >> Go To. Если пункт меню серого цвета, значит надо отключить Format >> Word Wrap.
Здравствуйте, VladD2, Вы писали:
VD>Сделай так. Запусти студию из под студии (под отладкой).
VD>Дойди до момента непосредственно предшествующего появлению ошибки. VD>Включи перехват обработанных исключений (все управляемых). VD>Выполни действие приводящее к появлению ошибки.
VD>В результате, с огромной вероятностью, вылезет это дело в виде исключения. Ну, и там уже вынь колстек и покажи мне.
Так и сделал — колстэка нет, исключение не появляется VD>Ну, или опиши действия приводящие к ошибке, я попробую воспроизвести сам.
Собрал интеграцию
Нажал F5
Начинает грузиться студия и во время показа splash screen появляется сообщение, что невозможно создать папку... D>>У меня получилось запустить из фара из командной строки (c параметрами).
VD>Что запустить?
devenv.exe c параметром /RootSuffix Exp
VD>Это косяк шаблона проекта. Просто подключи System.Core.
Здравствуйте, Аноним, Вы писали:
VD>>Я уж думал, что не заметил новой фичи. Сейчас попробовал — нет такой возможности. Да и учитывая кривую работу со строками толку от нее все равно не было бы. А>Она есть в меню Edit >> Go To. Если пункт меню серого цвета, значит надо отключить Format >> Word Wrap.
Да, действительно. Просто оно не работает при включенном переносе по словам. Век живи, век учись...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK.
Либо я не тот SDK скачал, либо одно из двух. У меня не цепляется. Пищет "The referenced component 'Microsoft.VisualStudio.Web.Application' could not be found". Поиск по всему винту также не обнаружил "Microsoft.VisualStudio.Web.Application". Она как-то хитро спрятана или переименована?
Из темы в том числе не очень понятно, куда копировать сборки Nemerle. У меня Винда 7-64 и тем не менее оказалось, что копировать надо в ProgramFiles (x86), иначе при сборке проектов вылезает ошибка с копированием сборок компилера для веб.
Здравствуйте, MxMsk, Вы писали:
VD>>Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK. MM>Либо я не тот SDK скачал, либо одно из двух. У меня не цепляется. Пищет "The referenced component 'Microsoft.VisualStudio.Web.Application' could not be found". Поиск по всему винту также не обнаружил "Microsoft.VisualStudio.Web.Application". Она как-то хитро спрятана или переименована?
А SP1 к студии ставил?
Может вот это оно?
MM>Из темы в том числе не очень понятно, куда копировать сборки Nemerle. У меня Винда 7-64 и тем не менее оказалось, что копировать надо в ProgramFiles (x86), иначе при сборке проектов вылезает ошибка с копированием сборок компилера для веб.
MM>А так, я уже в двух шагах
Надо один раз прогнать Reg-bins-2-4.0.cmd. Он создаст хардлинк для 64-битных и 32-битных каталогов.
Тоже самое можно сделать предварительно собрав (с помощью DevBuildQuick.cmd) версию немерла для 3.5-го фрэймворка.
Потом копировать будет по фигу куда. Катлог будет и в "ProgramFiles (x86)" и в "ProgramFiles".
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Denom, Вы писали:
D>Нажал F5 D>Начинает грузиться студия и во время показа splash screen появляется сообщение, что невозможно создать папку...
Попробуй запустить студию из под администратора (пункт в контекстном меню шортката).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, MxMsk, Вы писали:
VD>>Они не старые. Других попросту нет. А то что они цепляются из VS 2008 SDK, то это уже проблемы разрешения сборок. Не будет VS 2008 SDK — будут браться из VS 2010 SDK. MM>Либо я не тот SDK скачал, либо одно из двух. У меня не цепляется. Пищет "The referenced component 'Microsoft.VisualStudio.Web.Application' could not be found". Поиск по всему винту также не обнаружил "Microsoft.VisualStudio.Web.Application". Она как-то хитро спрятана или переименована?
MM>Из темы в том числе не очень понятно, куда копировать сборки Nemerle. У меня Винда 7-64 и тем не менее оказалось, что копировать надо в ProgramFiles (x86), иначе при сборке проектов вылезает ошибка с копированием сборок компилера для веб.
MM>А так, я уже в двух шагах
У меня тоже Win7-64 и Microsoft.VisualStudio.Web.Application лежит здесь:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
Она похоже не SDK а родная от VS возможно надо что бы стояла галочка на Web Development (или как-то так) при установке VS
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>У меня тоже Win7-64 и Microsoft.VisualStudio.Web.Application лежит здесь: ДА>C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE ДА>Она похоже не SDK а родная от VS возможно надо что бы стояла галочка на Web Development (или как-то так) при установке VS
Это и оказалось разгадкой! Добавил Visual Web Developer, и сборка появилась.
Гы. Запустил первый проект на Немерле Консольку из шаблона причем под виртуалкой на Macbook Pro
Здравствуйте, catbert, Вы писали:
C>Здравствуйте, Ziaw, Вы писали:
Z>>Проверьте английский на ляпы плиз, поправьте либо напишите о них тут.
C>Не могу сейчас закомитить:
C>1. Visual Studio 2010 (not express versionedition)
C>...
C>and select 'Run as administrator')
C>...
C>Note: this is an early preview version. Send bug reports attohttp://code.google.com/p/nemerle/issues/list, please.
Здравствуйте, VladD2, Вы писали:
ДА>>2) в некоторых случаях не ловит несогласованность м/у правилом в грамматике и его обработчиком — в результате ошибка в этом сгенерированном файле и понять что произошло очень трудно. Постараюсь минимальный пример соорудить.
VD>Попробуй создать минимальный пример воспроизводящий ошибку.
Вообщем я поэксперементировал похоже макрос вобще не проверяет соответствие между типом возвращаемого значения в правиле и в обработчике. В результате в сгенеренном коде всплывают разные ошибки.
Минимальный пример:
[PegGrammar(start,
grammar
{
start : int = '1';
}
)]
public class Class1
{
private start(token: NToken): string
{
GetText(token)
}
}
Здравствуйте, Дьяченко Александр, Вы писали:
ДА>Вообщем я поэксперементировал похоже макрос вобще не проверяет соответствие между типом возвращаемого значения в правиле и в обработчике. В результате в сгенеренном коде всплывают разные ошибки.
Баг. Починил его в последних комитах. За одно починил и NRE вылетающее на пустое правило. Теперь выдается сообщение об ошибке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.