LinqToSQL error при построение WebApp с Optimization - true
От: Shame Россия funtoo.org
Дата: 26.03.10 10:44
Оценка:
Один из примеров, ломающих оптимизацию :

        public static GetDataString(categoryId : string) : string
        {   
            if (categoryId!="")
            { def res = linq<#from i in _CfgIzmeritel 
                    from c in _CfgTypeIzmer
                    where i.ID_Izmerit==int.Parse(categoryId)
                    where c.ID_TypeIzmerit == i.ID_TypeIzmerit
                    select (c.CaptionForTables)#> ; res.ToArray()[0]
            } else ""
        }


error :

Ошибка 1 internal compiler error: assertion failed in file ncc\optimization\CFG.n, line 123 C:\Program Files\Nemerle\Nemerle.MSBuild.targets 226 10


очень хочется, что бы этой ошибки не было ...
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re: LinqToSQL error при построение WebApp с Optimization - t
От: _nn_ www.nemerleweb.com
Дата: 28.03.10 14:23
Оценка:
Здравствуйте, Shame, Вы писали:

S>Один из примеров, ломающих оптимизацию :


S>
S>        public static GetDataString(categoryId : string) : string
S>        {   
S>            if (categoryId!="")
S>            { def res = linq<#from i in _CfgIzmeritel 
S>                    from c in _CfgTypeIzmer
S>                    where i.ID_Izmerit==int.Parse(categoryId)
S>                    where c.ID_TypeIzmerit == i.ID_TypeIzmerit
S>                    select (c.CaptionForTables)#> ; res.ToArray()[0]
S>            } else ""
S>        }
S>


S>error :

S>
S>Ошибка 1 internal compiler error: assertion failed in file ncc\optimization\CFG.n, line 123 C:\Program Files\Nemerle\Nemerle.MSBuild.targets 226 10
S>


S>очень хочется, что бы этой ошибки не было ...

А какие классы ?
У меня тут вообще не компилируется
using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;
using Nemerle.Data.Linq;

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

[Record]
class CfgIzmeritel
{
  [Accessor]
  _ID_Izmerit : int;
  
  [Accessor]
  _ID_TypeIzmerit : int;
}

[Record]
class CfgTypeIzmer
{
  [Accessor]
  _ID_TypeIzmerit: int;
  
  [Accessor]
  _CaptionForTables : string;
}

module Program
{
  public static GetDataString(categoryId : string) : string
  {
    def _CfgIzmeritel = array[CfgIzmeritel(1, 2), CfgIzmeritel(1, 2)];
    def _CfgTypeIzmer = array[CfgTypeIzmer(2, "a"), CfgTypeIzmer(2, "a")];
  
    if (categoryId!="")
    { 
      def res = 
        linq<#
        from i in _CfgIzmeritel 
        from c in _CfgTypeIzmer
        where i.ID_Izmerit == int.Parse(categoryId)
        where c.ID_TypeIzmerit == i.ID_TypeIzmerit
        select (c.CaptionForTables)#> ;
        
        res.ToArray()[0]
    }
    else 
      ""
  }
        
  public Main() : void
  {
    
  }
}


Error: each overload has an error during call:
Error: overload #1, "method System.Linq.Enumerable.Where(source : System.Collections.Generic.IEnumerable[TSource], predicate : System.Func[TSource, int, bool]) : System.Collections.Generic.IEnumerable[TSource]" fail because:
Error: in argument #2 (predicate), needed a System.Func[(CfgIzmeritel- * CfgTypeIzmer-)-, int, bool], got (? * ?) -> bool-: ((CfgIzmeritel- * CfgTypeIzmer-)- * int) -> bool is not a subtype of System.Func[(CfgIzmeritel- * CfgTypeIzmer-)-, int, bool] [simple require]
Error: overload #2, "method System.Linq.Enumerable.Where(source : System.Collections.Generic.IEnumerable[TSource], predicate : System.Func[TSource, bool]) : System.Collections.Generic.IEnumerable[TSource]" fail because:
Error: in argument #2 (predicate), needed a System.Func[(CfgIzmeritel- * CfgTypeIzmer-)-, bool], got (? * ?) -> bool-: (CfgIzmeritel- * CfgTypeIzmer-) -> bool is not a subtype of System.Func[(CfgIzmeritel- * CfgTypeIzmer-), bool] [simple require]

http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 29.03.10 05:39
Оценка:
Здравствуйте, _nn_, Вы писали:

__>А какие классы ?

__>У меня тут вообще не компилируется

это не важно.
Пример классов и linq можно взять от сюда :
http://nemerle.googlecode.com/svn/nemerle/trunk/Linq/Testes/
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[2]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 06.04.10 11:48
Оценка: 1 (1)
Здравствуйте, _nn_, Вы писали:

Кстати, да компилируется.

Это макрос Accessor убирает подчеркивания из названия свойств.

[Record]
class CfgIzmeritel
{
  [Accessor]
  _ID_Izmerit : int;
  
  [Accessor]
  _ID_TypeIzmerit : int;
}

==>
[Record]
class CfgIzmeritel
{
  _ID_Izmerit : int;

  public IDIzmerit : int { get { _ID_Izmerit } }
  
  _ID_TypeIzmerit : int;

  public IDTypeIzmerit : int { get { _ID_TypeIzmerit } }
}


С этим изменением работает

def res = 
        linq<#
          from i in _CfgIzmeritel 
          from c in _CfgTypeIzmer
          where i.IDIzmerit == int.Parse(categoryId)
          where c.IDTypeIzmerit == i.IDTypeIzmerit
          select (c.CaptionForTables)#> ;


P.S.
http://rsdn.ru/forum/nemerle/3753686.1.aspx
Автор: _nn_
Дата: 29.03.10
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 07.04.10 04:23
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Кстати, да компилируется.


Ну а

    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>


Что вернёт ?
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[4]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 07.04.10 09:37
Оценка:
Здравствуйте, Shame, Вы писали:

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


__>>Кстати, да компилируется.


S>Ну а


S>
S>    <DebugType>pdbonly</DebugType>
S>    <Optimize>true</Optimize>
S>


S>Что вернёт ?


Мой пример комилируется.
Использую билд 8725.

Надо проверить тесты, может там что-то другое.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 07.04.10 13:04
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Мой пример комилируется.

__>Использую билд 8725.

__>Надо проверить тесты, может там что-то другое.


У меня такой же билд.


Ошибка    1    internal compiler error: assertion failed in file ncc\optimization\CFG.n, line 123    C:\Program Files\Nemerle\Nemerle.MSBuild.targets    226    10



И сюда тычет :

        <Ncc
              AdditionalLibPaths="$(AdditionalLibPaths)"
              CheckIntegerOverflow="$(CheckIntegerOverflow)"
              DefineConstants="$(DefineConstants)"
              DisabledWarnings="$(_DisabledWarnings)"
              EnabledWarnings="$(EnabledWarnings)"
              DocumentationFile="@(DocFileItem)"
              EmitDebugInformation="$(DebugSymbols)"
              KeyFile="$(KeyOriginatorFile)"
              NoLogo="$(NoLogo)"
              NoStdLib="$(NoStdLib)"
              NoStdMacros="$(NoStdMacros)"
              GreedyReferences="$(GreedyReferences)"
              Optimize="$(Optimize)"
              OutputAssembly="@(IntermediateAssembly)"
              References="@(ReferencePath)"
              Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
              ResponseFiles="$(CompilerResponseFile)"
              Sources="@(Compile)"
              Platform="$(PlatformTarget)"
              TargetType="$(OutputType)"
              ToolPath="$(CscToolPath)"
              TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
              WarningLevel="$(WarningLevel)"
              ProjectPath="$(MSBuildProjectFullPath)"
              RootNamespace="$(RootNamespace)"
              MacroReferences="@(MacroReferencePath)"
              CompilerPath="$(Nemerle)"
              />
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[4]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 08.04.10 07:58
Оценка:
Здравствуйте, Shame, Вы писали:

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


__>>Кстати, да компилируется.


S>Ну а


S>
S>    <DebugType>pdbonly</DebugType>
S>    <Optimize>true</Optimize>
S>


S>Что вернёт ?


Секунду, а что такое DebugType ?

Я вот создал проект в студии и уменя в nproj DebugSymbols:
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   <DebugSymbols>true</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>


Может из-за этого проблема ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 08.04.10 09:02
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Секунду, а что такое DebugType ?

без понятия
Но без него та же ошибка
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[6]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 08.04.10 09:11
Оценка:
Здравствуйте, Shame, Вы писали:

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


__>>Секунду, а что такое DebugType ?

S>без понятия
S>Но без него та же ошибка

А если DebugSymbols использовать ?

Попробуем сначала.
1. Удалить Nemerle полностью включая из Program Files. (Может он в GAC случайно есть, тогда и там удалить)
2. Установить Nemerle build 8725
3. Создать в студии консольное приложение, в релизе должно компилироваться.

Тут есть консольное приложение, у меня компилируется.
http://files.rsdn.ru/16901/ConsoleApplication2.zip
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: LinqToSQL error при построение WebApp с Optimization
От: seregaa Ниоткуда http://blogtani.ru
Дата: 08.04.10 10:04
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Тут есть консольное приложение, у меня компилируется.

__>http://files.rsdn.ru/16901/ConsoleApplication2.zip

Веб приложение с классом из этого архива тоже компилируется без ошибок. И debug и release конфигурации, и с pdb и без. Проверил только что на последней ревизии.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re: LinqToSQL error при построение WebApp с Optimization - t
От: _nn_ www.nemerleweb.com
Дата: 14.04.10 08:12
Оценка:
Здравствуйте, Shame, Вы писали:

Проявляется еще ошибка или уже исправлена в последних ревизиях ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 14.04.10 08:39
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Проявляется еще ошибка или уже исправлена в последних ревизиях ?


на 8745 повторяется.
Перекидывание всех файлов на новый проект не помоглу.
Было в планах даже переводить Linq на C# код после добавленной App_Code поддержки,
но в данный момент думаю как оменить PostBack на динамической кнопке, что бы она не исчезала.
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[3]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 14.04.10 11:17
Оценка:
Здравствуйте, Shame, Вы писали:

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


__>>Проявляется еще ошибка или уже исправлена в последних ревизиях ?


S>на 8745 повторяется.

S>Перекидывание всех файлов на новый проект не помоглу.

Есть возможность создать минимальный проект на котором воспроизводится баг ?

P.S.
Не надо на C# переходить, лучше баг поправить
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 14.04.10 12:18
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Не надо на C# переходить, лучше баг поправить


Это срадостью, хотя Nemerle Linq to sql даёт некие странности
(например не могу ставить условия по трём таблицам, могу привести пример чуть позже)
Но мне, конечно, тоже хочется починить его.
Минимальный пример ошибки как-нибудь сделаю.
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[4]: LinqToSQL error при построение WebApp с Optimization
От: Shame Россия funtoo.org
Дата: 20.04.10 05:59
Оценка:
Здравствуйте, _nn_, Вы писали:

Вот тест

Web App 1.0.0.8745


using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;
using Nemerle.Data.Linq;
using System.Data.Linq.Mapping;

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;

using System.Data.Linq;

namespace Flow_WEB_Nemerle
{
    [Record]
    [Table(Name="dbo.CfgARM")]
    public partial class CfgARM
    {
        public this() { }
    
        mutable _ID_ARM : int;
        mutable _Logo : array[byte];
        
        [Column(Storage="_ID_ARM", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
        public ID_ARM : int { get { _ID_ARM; } }
        
        [Column(Storage="_Logo", DbType="Image")]
        public Logo : array[byte] { get { _Logo; } }
    }


    class LinqDataConnection : DataContext
    {
        public this(connStr : string)
        {
            base(connStr)
        }
        public CfgARM : Table[CfgARM]    { get { GetTable(); } }
    }
    
}



using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;
using Nemerle.Data.Linq;
using System.Data.Linq.Mapping;

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;

using System.Data.Linq;

using System.Configuration;

using System.ComponentModel;

using Nemerle.Imperative;

namespace Flow_WEB_Nemerle
{
    public static class SQLModule
    {
        public this()
        {
             _conn.Connection.Open();
             _CfgARM = _conn.CfgARM; 
        }
    
        static connSetting : System.Configuration.ConnectionStringSettings = ConfigurationManager.ConnectionStrings["FlowServerConnectionString"];
        static _conn : LinqDataConnection = LinqDataConnection(connSetting.ConnectionString);
        
        public static mutable _CfgARM : Table[CfgARM];
        
        
        public static GetImageFromDataBase() : array[byte]
        {
            def res = linq <# from c in _CfgARM 
                        where c.ID_ARM == 5
                        select (c.Logo) 
                        #>; res.ToArray()[0]
        }
 }               
}


Ошибка 1 internal compiler error: assertion failed in file ncc\optimization\CFG.n, line 123 C:\Program Files\Nemerle\Nemerle.MSBuild.targets 226 10 CrashWithLinq
الحقيقة:الشئ الوحيد الذي(لا)يصدقه الناس!ا الزواج : جمع.وطرح.ثم(ضرب)!ولكنه قبل ذلك(قسمة) المحامي:لسان.وحنجرة.وروب!يدافع عن مال موكله (أعزائي)!وهو لا يعرف أحد منّا!الطالب (الأول)على فصله!لولا وجود الأخرين
Re[5]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 21.04.10 11:33
Оценка:
Здравствуйте, Shame, Вы писали:

Подтверждаю.

Можно минимизировать пример:
using Nemerle.Data.Linq;
using System.Linq;
using Nemerle.Utility;

namespace Flow_WEB_Nemerle
{
  [Record]
  public class C
  {
    [Accessor]
    a : int;
  }
    
  public sealed class QTable[TEntity] : System.Linq.IQueryable[TEntity]
  {
    public GetEnumerator() : System.Collections.Generic.IEnumerator[TEntity]
    {
      null;
    }
    
    #region IQueryable
    
    public Expression : System.Linq.Expressions.Expression { get { null } }
    public ElementType : System.Type { get { null } }
    public Provider : System.Linq.IQueryProvider { get { null } }
    
    #endregion

  }
  
  public static class SQLModule
  {
    public static GetImageFromDataBase() : void
    {
      def tt : QTable[C] = null;
      _ = linq <# from c in tt select (c.A) #>;
    }
  }               
}


System.Linq.IQueryable[TEntity] как-то создает проблему.
Пока пытаюсь найти что именно создает ошибку.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[6]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 21.04.10 11:53
Оценка:
Здравствуйте, _nn_, Вы писали:

А если заменить System.Linq.IQueryable[T] на свой аналогичный класс, то ошибки нет:

public interface MyQueryable[T] : System.Collections.Generic.IEnumerable[T], System.Linq.IQueryable
{}

public sealed class QTable[TEntity] : Flow_WEB_Nemerle.MyQueryable[TEntity]
...


А вот так не работает (!)
public interface MyQueryable[T] : System.Linq.IQueryable[T]
{}

public sealed class QTable[TEntity] : Flow_WEB_Nemerle.MyQueryable[TEntity]
...


Значит где-то идет проверка именно на System.Linq.IQueryable[T] и получается ошибка.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[7]: LinqToSQL error при построение WebApp с Optimization
От: _nn_ www.nemerleweb.com
Дата: 21.04.10 12:07
Оценка:
Здравствуйте, _nn_, Вы писали:

Вот минимальный код для бага:
Даже объекты не понадобились.

using System.Linq;
using Nemerle.Data.Linq;

namespace Flow_WEB_Nemerle
{
  public static class SQLModule
  {
    public static GetImageFromDataBase() : void
    {
      _ = linq <# from c in (null : IQueryable[object]) select (c.ToString()) #>;
    }
  }               
}


C:\Program Files\Nemerle\Nemerle.MSBuild.targets(226,9):Error: internal compiler error: assertion failed in file ncc\optimization\CFG.n, line 123


Стоит добавить как тест в Nemerle.Linq.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.