Исключение от компилятора
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 18.09.11 11:17
Оценка:
Второй день пытаюсь перевести один MVC3 проект на Немерле. Много проблем уже решил, но теперь столкнулся с такой, с которой не знаю что делать.
При компиляции проекта вылезает такой эксепшен:

D:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(219,9): error : internal compiler error: got ArgumentException (NList.Iter2)
at Nemerle.Collections.NList.Iter2[T,TOut](list`1 a, list`1 b, FunctionVoid`2 f)
at Nemerle.Compiler.ILEmitter.GetMethodInfo(TypeVar from_type, IMethod meth, list`1 typars)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit_exprs_push(LocalBuilder[] local_variables, list`1 exprs)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit_exprs_push(LocalBuilder[] local_variables, list`1 exprs)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.emit(TExpr expr)
at Nemerle.Compiler.ILEmitter.Run()
at Nemerle.Compiler.MethodBuilder._N__N_lambda__66308__66416.apply_void()
at Nemerle.Compiler.TypeBuilder.BeforeFinalizeType()
at Nemerle.Compiler.TypeBuilder.EmitImplementation()
at Nemerle.Compiler.TypesManager._N_emit_impl__59299.apply_void(TypeBuilder ti)
at Nemerle.Compiler.TypesManager._N_maybe_f__59544.apply_void(TypeBuilder ti)
at Nemerle.Collections.NList.Iter[T](list`1 l, FunctionVoid`1 f)
at Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1 f)
at Nemerle.Compiler.TypesManager.compile_all_tyinfos(Boolean aux_phase)
at Nemerle.Compiler.TypesManager._N__N_lambda__58721__58825.apply_void()
at Nemerle.Compiler.Solver.Enqueue(FunctionVoid action)
at Nemerle.Compiler.ManagerClass.Run()
at Nemerle.CommandlineCompiler.MainClass.main_with_catching()


В проекте используются C# файлы.(которым, кстати, надо было выставить build action: compile, чего я сначала не знал...)
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.09.11 16:06
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Второй день пытаюсь перевести один MVC3 проект на Немерле. Много проблем уже решил, но теперь столкнулся с такой, с которой не знаю что делать.

ММ>При компиляции проекта вылезает такой эксепшен:
ММ>
ММ>D:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(219,9): error : internal compiler error: got ArgumentException (NList.Iter2)
ММ> at Nemerle.Collections.NList.Iter2[T,TOut](list`1 a, list`1 b, FunctionVoid`2 f)
ММ> at Nemerle.Compiler.ILEmitter.GetMethodInfo(TypeVar from_type, IMethod meth, list`1 typars)
ММ>


Информации недостаточно. Нужно под отладчиком смотреть.

Компилятор и интеграция собраны из исходников?

Есть ли возможность оформить отдельный проект и послать его мне по почте?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 18.09.11 18:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Второй день пытаюсь перевести один MVC3 проект на Немерле. Много проблем уже решил, но теперь столкнулся с такой, с которой не знаю что делать.

ММ>>При компиляции проекта вылезает такой эксепшен:
ММ>>
ММ>>D:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(219,9): error : internal compiler error: got ArgumentException (NList.Iter2)
ММ>> at Nemerle.Collections.NList.Iter2[T,TOut](list`1 a, list`1 b, FunctionVoid`2 f)
ММ>> at Nemerle.Compiler.ILEmitter.GetMethodInfo(TypeVar from_type, IMethod meth, list`1 typars)
ММ>>


VD>Информации недостаточно. Нужно под отладчиком смотреть.


VD>Компилятор и интеграция собраны из исходников?


VD>Есть ли возможность оформить отдельный проект и послать его мне по почте?


1. Компилятор и интеграция взяты из последней ветки Кочеткого Владимира для 4 фреймворка.
2. К сожалению проект не публичный, прислать не могу. Попробую изолировать проблему, хотя не знаю с какой стороны подступиться

Каким образом можно дебужить компиляцию?
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Исключение от компилятора
От: hardcase Пират http://nemerle.org
Дата: 18.09.11 19:35
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Каким образом можно дебужить компиляцию?


Вызвать в отладчик в любом удобном месте:
assert2(false)
Далее цеплять студию (винда предложит, либо самостоятельно) и отлаживать как обычно.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Исключение от компилятора
От: WolfHound  
Дата: 18.09.11 20:44
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Вызвать в отладчик в любом удобном месте:
assert2(false)
Далее цеплять студию (винда предложит, либо самостоятельно) и отлаживать как обычно.

Я тут подумал, а что если в ncc добавить опцию командной строки, которая будет делать assert2(false).
Таким образом, можно будет легко запускать компилятор на отладку.
Достаточно будет выставить в опциях проекта галочку.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.09.11 23:56
Оценка:
Здравствуйте, ionoy, Вы писали:

I>1. Компилятор и интеграция взяты из последней ветки Кочеткого Владимира для 4 фреймворка.


В смысле, используется готовый инсталлятор?

I>2. К сожалению проект не публичный, прислать не могу. Попробую изолировать проблему, хотя не знаю с какой стороны подступиться


I>Каким образом можно дебужить компиляцию?


Собрать с исходников. Процесс описан здесь
Автор(ы):
.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.11 00:02
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Я тут подумал, а что если в ncc добавить опцию командной строки, которая будет делать assert2(false).

WH>Таким образом, можно будет легко запускать компилятор на отладку.
WH>Достаточно будет выставить в опциях проекта галочку.

Опция компилятора такая есть — "-debugger". В проектном файле она задается через установку свойства RunDebugger в True. Вот только в ГУИ ее выставить нельзя (никто не реализовал). Можно только проектный файл править.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 19.09.11 06:21
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>В смысле, используется готовый инсталлятор?
Да

VD>Собрать с исходников. Процесс описан здесь
Автор(ы):
.

Спасибо, попробую
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[4]: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 19.09.11 16:36
Оценка:
Здравствуйте, VladD2, Вы писали:

Привет,
В общем я собрал компилятор, предварительно удалив всё старое, теперь ошибка другая:

C:\Program Files (x86)\Nemerle\Nemerle.MSBuild.targets(219,9): error : Internal compiler error 'cannot reflect `System.Array'', please report a bug to bugs.nemerle.org. You can try modifying program near this location.
C:\Program Files (x86)\Nemerle\Nemerle.MSBuild.targets(219,9): error : internal compiler error: assertion failed in file ncc\external\InternalTypes.n, line 164: cannot reflect `System.Array'
at Nemerle.Compiler.SystemTypeClass.Reflect(String type_name)
at Nemerle.Compiler.SystemTypeClass.Init()
at Nemerle.Compiler.ManagerClass._N__N_lambda__26748__26911.apply_void()
at Nemerle.Compiler.ManagerClass._N_tryEx_26771(_N_closure_26755 _N_LoadExternalLibraries_cp_26770, FunctionVoid f)
at Nemerle.Compiler.ManagerClass.LoadExternalLibraries()
at Nemerle.Compiler.ManagerClass.Run()
at Nemerle.CommandlineCompiler.MainClass.main_with_catching() in c:\dev\!\nemerle\nemerle\ncc\main.n:line 82

Компилятор для Net 4.0

Минимальный проект, на котором возникает это исключение:
http://dl.dropbox.com/u/133081/MvcApplication1.zip
Правда это может уже быть из-за моей неправильной установки Немерле...

Предыдущее исключение я так и не смог пока поймать, потому что компилятор отказался собираться второй раз. Там каким-то образом произошёл конфликт между 1.0.0.269 и 1.0.0.270 версиями. Может быть, это потому что я отдельно собирал инсталлер. Сейчас, к сожалению дальше разбираться нет времени
Вообще такое ощущение, что это исключение связано с References, у нас в проекте много чего добавлено из разных версий фреймворков. Сам проект на 4.0.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[5]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.11 17:04
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Привет,

I>В общем я собрал компилятор, предварительно удалив всё старое, теперь ошибка другая:

I>C:\Program Files (x86)\Nemerle\Nemerle.MSBuild.targets(219,9): error : Internal compiler error 'cannot reflect `System.Array'',


Это у тебя что-то не так со сборками. Такое сообщение, обычно, появляется когда невозможно загрузить Nemerle.dll. Скорее всего у тебя каша из сборок или что-то не так собралось.

Вот краткая инструкция что должно быть и как делать.
На машине должно стоять:
1. VS 2010 Prof+.
2. SP1 для VS 2010.
3. VS 2010 SDK SP1.
4. Последние исходники с гитхаба.

Нужно:
1. Запустить нечто из под чего можно осуществлять сборку под экаунтом администратора (обычно Total Commander или FAR). Это что-то должно быть запущено от имени администратора (в контекстом меную пункт Run as Administrator). Данный пункт не нужен под ХРюшей.
2. Надо закрыть все копии VS.
3. Зайти в каталог с исходниками и запустить DevBuildQuick-4.cmd.
4. Дождаться окончания сборки. При этом не должно быть никаких сообщений об ошибках (выделяется красным).
5. Открыть солюшен Nemerle\snippets\VS2010\Nemerle.VS2010.sln и пересобрать его (Rebuild).
6. Прописать в отладку (свойства проекта) к проекту Nemerle.VisualStudio.csproj отлаживаемым приложением devenv.exe (у меня, C:\VS\VS-2010\Common7\IDE\devenv.exe). В аргументах командной строки указать "/rootSuffix Exp".
7. Нажать F5 и дождаться запуска новой копии студии.

В этой копии студии будет работать интеграция в отладочном режиме. Исходная студия сможет перехватывать исключения и производить другую отладку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.11 17:07
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Предыдущее исключение я так и не смог пока поймать, потому что компилятор отказался собираться второй раз. Там каким-то образом произошёл конфликт между 1.0.0.269 и 1.0.0.270 версиями. Может быть, это потому что я отдельно собирал инсталлер. Сейчас, к сожалению дальше разбираться нет времени


Инсталлятор вообще не нужно собирать. Только DevBuildQuick-4.cmd. При этом запускать его нужно из под админа (под Вынь7 и Вистой).

I>Вообще такое ощущение, что это исключение связано с References, у нас в проекте много чего добавлено из разных версий фреймворков. Сам проект на 4.0.


То что ты имеешь сейчас — это какая-то каша из сборок. Сначала нужно правильно собрать и запустить игтеграцию. Своих изменений на этом этапе не вноси. Добейся работоспособности интеграции, а уже потом будешь дальше что-то делать.

Можешь постучаться ко мне на скайп (VladD2) и я тебе в интерактивном режиме помогу.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Исключение от компилятора
От: CodingUnit Россия  
Дата: 19.09.11 17:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, ionoy, Вы писали:



VD>Нужно:

VD>1. Запустить нечто из под чего можно осуществлять сборку под экаунтом администратора (обычно Total Commander или FAR). Это что-то должно быть запущено от имени администратора (в контекстом меную пункт Run as Administrator). Данный пункт не нужен под ХРюшей.
VD>2. Надо закрыть все копии VS.
VD>3. Зайти в каталог с исходниками и запустить DevBuildQuick-4.cmd.
VD>4. Дождаться окончания сборки. При этом не должно быть никаких сообщений об ошибках (выделяется красным).
VD>5. Открыть солюшен Nemerle\snippets\VS2010\Nemerle.VS2010.sln и пересобрать его (Rebuild).
VD>6. Прописать в отладку (свойства проекта) к проекту Nemerle.VisualStudio.csproj отлаживаемым приложением devenv.exe (у меня, C:\VS\VS-2010\Common7\IDE\devenv.exe). В аргументах командной строки указать "/rootSuffix Exp".
VD>7. Нажать F5 и дождаться запуска новой копии студии.

Маленькое замечание, еще нужно после перекомпиляции компилятора, переинсталлировать плагин студии, или скопировать все файлы из bin\debug\.net-4.0\VsIntegration в папку где лежит плагин:

C:\Users\Username\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Nemerle Team\Nemerle Visual Studio 2010 Integration\1.0\
или в другой ОС в аналогичной папке

если в плагине старые dll ки они тоже могут не давать скомпилировать
Re[6]: Исключение от компилятора
От: YF Германия  
Дата: 19.09.11 17:18
Оценка: +1
Здравствуйте, VladD2, Вы писали:

I>>Вообще такое ощущение, что это исключение связано с References, у нас в проекте много чего добавлено из разных версий фреймворков. Сам проект на 4.0.


VD>То что ты имеешь сейчас — это какая-то каша из сборок. Сначала нужно правильно собрать и запустить игтеграцию. Своих изменений на этом этапе не вноси. Добейся работоспособности интеграции, а уже потом будешь дальше что-то делать.


Если поискать на форуме, то можно найти сообщение ziaw-а о том, что mvc3 не поддерживается.
Я не знаю, изменилось ли что-то с тех пор. Тогда он написал, что mvc3 по всей видимости тянет за собой сборки от 2-го фреймворка, а винегрет из разных версий не поддерживается.
Оригинальное сообщeние здесь
Автор: Ziaw
Дата: 25.05.11
Re[7]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.11 17:39
Оценка:
Здравствуйте, CodingUnit, Вы писали:

VD>>6. Прописать в отладку (свойства проекта) к проекту Nemerle.VisualStudio.csproj отлаживаемым приложением devenv.exe (у меня, C:\VS\VS-2010\Common7\IDE\devenv.exe). В аргументах командной строки указать "/rootSuffix Exp".

VD>>7. Нажать F5 и дождаться запуска новой копии студии.

CU>Маленькое замечание, еще нужно после перекомпиляции компилятора, переинсталлировать плагин студии, или скопировать все файлы...


Это нужно делать только, если есть желание использовать интеграцию в основной (не экспериментальной) ветке.
Если интеграция нужна только для отладки, то указанных мной шагов достаточно.
Регистрация в экспериментальной ветке происходит при пересборке проекта.

Кроме того можно создать себе шорткат для devenv.exe с опциями командной строки "/rootSuffix Exp" и запускать экспериментальную ветку без отладки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.09.11 17:40
Оценка:
Здравствуйте, YF, Вы писали:

YF>Если поискать на форуме, то можно найти сообщение ziaw-а о том, что mvc3 не поддерживается.

YF>Я не знаю, изменилось ли что-то с тех пор. Тогда он написал, что mvc3 по всей видимости тянет за собой сборки от 2-го фреймворка, а винегрет из разных версий не поддерживается.
YF>Оригинальное сообщeние здесь
Автор: Ziaw
Дата: 25.05.11


Ну, вроде как товарищь и пытается наладить работу mvc3. В любом случае выяснение подробностей упростит работу тем кто будет делать реализацию поддержки mvc3 в будущем. Так что труды не будут напрасными.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 19.09.11 17:43
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, ionoy, Вы писали:


VD>Инсталлятор вообще не нужно собирать. Только DevBuildQuick-4.cmd. При этом запускать его нужно из под админа (под Вынь7 и Вистой).

Инсталлятор я собирал в процессе поиска правильного решения. Всё, перечисленное веткой выше я сделал, и в какой-то момент у меня даже всё правильно заработало и вылетело оригинальное исключение. Но когда я попробовал пересобрать компилятор под 4 фреймворк мне посыпались ошибки, видимо всвязи с 269/270 конфликтом.

К сожалению в ближайшие пару дней продолжить процесс не смогу, но как только опять засяду, то обязательно постучусь в скайп, если снова встречу нечто подобное.

Идея была по быстрому перевести MVC проект на Nemerle, чтобы использовать все плюшки NRails, ну и вообще, понравился мне этот язык. Но сейчас уже время поджимает, придётся пока продолжать на C#. На следующей неделе попробую снова разобраться, хотя там наверху пишут, что с MVC3 не получиться пока запустить. В общем, посмотрим.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 20.09.11 12:51
Оценка:
В общем, мне удалось изолировать проблему.
Возникает она при использовании 4 фреймворка и добавлении в проект *.cs файла, например, следующего содержания:

A.cs

using System;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
    public class A
    {
        public IEnumerable<T> B<T>(IEnumerable<T> source)
        {
            return source.Select(i => i);
        }
    }
}


Если комментируем Select(), то ошибка исчезает. Докопаться до сути, не смог, у меня почему-то сбиваются локейшены, когда я дебужу. Такое ощущение, что компилятор запускается Release, хотя я всё сделал так, как описал Влад чуть выше.

Ещё раз текст исключения:

C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(219,9): error : internal compiler error: got ArgumentException (NList.Iter2)
at Nemerle.Collections.NList.Iter2[T,TOut](list`1 a, list`1 b, FunctionVoid`2 f) in c:\dev\nemerle\nemerle\lib\list.n:line 995
at Nemerle.Compiler.ILEmitter.GetMethodInfo(TypeVar from_type, IMethod meth, list`1 typars) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 384
at Nemerle.Compiler.ILEmitter.emit(TExpr expr) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1466
at Nemerle.Compiler.ILEmitter.emit_exprs_push(LocalBuilder[] local_variables, list`1 exprs) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1689
at Nemerle.Compiler.ILEmitter.emit_exprs(list`1 exprs) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1642
at Nemerle.Compiler.ILEmitter.emit_parms(list`1 parms) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 423
at Nemerle.Compiler.ILEmitter.emit(TExpr expr) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1156
at Nemerle.Compiler.ILEmitter.emit_exprs_push(LocalBuilder[] local_variables, list`1 exprs) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1689
at Nemerle.Compiler.ILEmitter.emit_exprs(list`1 exprs) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1642
at Nemerle.Compiler.ILEmitter.emit_parms(list`1 parms) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 423
at Nemerle.Compiler.ILEmitter.emit(TExpr expr) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1216
at Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1717
at Nemerle.Compiler.ILEmitter.emit(TExpr expr) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 1627
at Nemerle.Compiler.ILEmitter.emit(TExpr expr) in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 801
at Nemerle.Compiler.ILEmitter.Run() in c:\dev\nemerle\nemerle\ncc\generation\ILEmitter.n:line 117
at Nemerle.Compiler.MethodBuilder._N__N_lambda__66321__66429.apply_void() in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 856
at Nemerle.Compiler.TypeBuilder.BeforeFinalizeType() in c:\dev\nemerle\nemerle\ncc\hierarchy\TypeBuilder.n:line 1765
at Nemerle.Compiler.TypeBuilder.FinalizeType() in c:\dev\nemerle\nemerle\ncc\hierarchy\TypeBuilder.n:line 1771
at Nemerle.Compiler.TypeBuilder.EmitImplementation() in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 678
at Nemerle.Compiler.TypesManager._N_emit_impl__59421.apply_void(TypeBuilder ti) in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 370
at Nemerle.Compiler.TypesManager._N_maybe_f__59656.apply_void(TypeBuilder ti) in c:\dev\nemerle\nemerle\ncc\hierarchy\TypesManager.n:line 258
at Nemerle.Collections.NList.Iter[T](list`1 l, FunctionVoid`1 f) in c:\dev\nemerle\nemerle\lib\list.n:line 926
at Nemerle.Core.list`1.Iter(FunctionVoid`1 f) in c:\dev\nemerle\nemerle\lib\list.n:line 318
at Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1 f) in c:\dev\nemerle\nemerle\ncc\hierarchy\TypesManager.n:line 265
at Nemerle.Compiler.TypesManager.Iter(FunctionVoid`1 f) in c:\dev\nemerle\nemerle\ncc\hierarchy\TypesManager.n:line 276
at Nemerle.Compiler.TypesManager.compile_all_tyinfos(Boolean aux_phase) in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 402
at Nemerle.Compiler.TypesManager._N__N_lambda__58843__58947.apply_void() in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 240
at Nemerle.Compiler.Solver.Enqueue(FunctionVoid action) in c:\dev\nemerle\nemerle\ncc\typing\Solver.n:line 201
at Nemerle.Compiler.TypesManager.EmitDecls() in c:\dev\nemerle\nemerle\ncc\generation\HierarchyEmitter.n:line 260
at Nemerle.Compiler.ManagerClass.Run() in c:\dev\nemerle\nemerle\ncc\passes.n:line 609
at Nemerle.CommandlineCompiler.MainClass.main_with_catching() in c:\dev\nemerle\nemerle\ncc\main.n:line 82


Минимальный проект: http://dl.dropbox.com/u/133081/ConsoleApplication1.zip
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[2]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.09.11 15:15
Оценка:
Здравствуйте, ionoy, Вы писали:

I>В общем, мне удалось изолировать проблему.

I>Возникает она при использовании 4 фреймворка и добавлении в проект *.cs файла, например, следующего содержания:

I>A.cs


I>
I>using System;
I>using System.Collections.Generic;
I>using System.Linq;

I>namespace ConsoleApplication1
I>{
I>    public class A
I>    {
I>        public IEnumerable<T> B<T>(IEnumerable<T> source)
I>        {
I>            return source.Select(i => i);
I>        }
I>    }
I>}
I>


I>Если комментируем Select(), то ошибка исчезает. Докопаться до сути, не смог, у меня почему-то сбиваются локейшены, когда я дебужу. Такое ощущение, что компилятор запускается Release, хотя я всё сделал так, как описал Влад чуть выше.


ОК, починим. Добавь, плиз, issue и кинь сюда ссылку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Исключение от компилятора
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.09.11 15:19
Оценка:
Здравствуйте, ionoy, Вы писали:

I>Если комментируем Select(), то ошибка исчезает. Докопаться до сути, не смог, у меня почему-то сбиваются локейшены, когда я дебужу. Такое ощущение, что компилятор запускается Release, хотя я всё сделал так, как описал Влад чуть выше.


А, если заменить Select на Map, то ошибка остается?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Исключение от компилятора
От: ionoy Эстония www.ammyui.com
Дата: 20.09.11 16:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А, если заменить Select на Map, то ошибка остается?


Исчезает, проект компилируется успешно.
Правда Map подчёркивается красным с примерно текстом "type arguments for list<To> Map<From, To>(.....) cannot be inferred from the usage .........."
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.