retarget-compiler to dotnet core
От: varenikAA  
Дата: 25.02.20 07:58
Оценка:
Клонирую ветку в c:\tmp
clone -b retarget-compler https://github.com/rsdn/nemerle.git


через dev tool vs 2017
выполняю Build-core.cmd из каталога c:\tmp\nemerle
исправив
msbuild NemerleAll.nproj /t:Stage1;CompilerTests;_ComputationExpressions;_Async;Install /p:NTargetName=Build;Configuration=%Config%;NInstall=c:\RSDN\nemerle\bin\%Config%\net-4.0

на

msbuild NemerleAll.nproj /t:Stage1;Install /p:NTargetName=Build;Configuration=%Config%;NInstall=c:\tmp\nemerle\bin\%Config%\net-4.0


Далее делаю тестовый батник:
echo System.Console.WriteLine("Hello!"); > App.n
del err.txt
dotnet ncc.dll -r:Nemerle.Macros.dll App.n > err.txt 2>&1


Изначально ругался невозможность загрузить SecurityAttribute
  SecurityAttribute_tc                  = lookup("System.Object");// - обошел заменив на объект и пересобрав


Затем стал ругаться на маркосы, добавил configProperties в ncc.runtimeconfig.json:

{
      "runtimeOptions": {
        "tfm": "netcoreapp2.1",
        "framework": {
          "name": "Microsoft.NETCore.App",
          "version": "2.1.0"
      },
    "configProperties": {
      "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
    }
  }
}


и параметром ссылку на Nemerle.Macros.dll из рабочего каталога,
теперь ругается:

C:\tmp\nemerle\bin\Release\dotnet\App.n(1,1,1,7):error: unbound name `Console' in `System'


Неужели из СДК не тянет и это автоматом?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: retarget-compiler to dotnet core
От: varenikAA  
Дата: 25.02.20 08:15
Оценка:
Скопилилось командой:

dotnet ncc.dll -r:Nemerle.Macros.dll -r:"C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Console.dll" App.n > err.txt 2>&1


Однако полученный out.exe все равно отказывается работать

Необработанное исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" либо одну из их зависимостей. Не удается найти указанный файл.

— если запустить exe

A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\tmp\nemerle\bin\Release\dotnet\'.
Failed to run as a self-contained app. If this should be a framework-dependent app, add the C:\tmp\nemerle\bin\Release\dotnet\out.runtimeconfig.json file specifying the appropriate framework.

— если запустить dotnet out.exe
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.20 13:46
Оценка: 3 (1) +1
Здравствуйте, varenikAA, Вы писали:

AA>выполняю Build-core.cmd из каталога c:\tmp\nemerle

AA>исправив
AA>
AA>msbuild NemerleAll.nproj /t:Stage1;CompilerTests;_ComputationExpressions;_Async;Install /p:NTargetName=Build;Configuration=%Config%;NInstall=c:\RSDN\nemerle\bin\%Config%\net-4.0
AA>

AA>на

AA>
AA>msbuild NemerleAll.nproj /t:Stage1;Install /p:NTargetName=Build;Configuration=%Config%;NInstall=c:\tmp\nemerle\bin\%Config%\net-4.0
AA>


Зачем? При этом не собрались некоторые части компилятора вроде плагина для поддержки C#.

AA>Изначально ругался невозможность загрузить SecurityAttribute


Это потому что ты не указал сборку где этот атрибут находится.

AA>
AA>  SecurityAttribute_tc                  = lookup("System.Object");// - обошел заменив на объект и пересобрав 
AA>


Это делать нельзя, так как это привязывает компилятор к платформе.

AA>Затем стал ругаться на маркосы, добавил configProperties в ncc.runtimeconfig.json:


Короче, попробовал сам собрать компилятор под Кор и им же собрать хэлоуворлд. Напаролся на проблему с загрузкой стандартной макро-сборки (которая грузится по имени). Похоже Assembly.LoadWithPartialName() в корке не реализованна должным образом. Провел следственные эксперементы и обнаружил, что в 4.6.1 дотнете и корке обычный Assembly.Load() умеет грузить сборки по частичному имени. По сему заменил Assembly.LoadWithPartialName на Assembly.Load. Смотри последний коммит.

Ну, а далее все спокойно собралось. Только нужно задавать все референсы явно. Проще всего это сделать собрав корочный проект C#-ом и подсмотрев в выхлопе студии (предворительно подняв уровень выхлопа до Detailed) командную строку csc.exe. Что я и сделал. На основе полученного списка сборок составил следующий файл ответов:

  response.txt
test1.n
/no-color
/nostdmacros
/nostdlib
/debug:+
/target:Exe
/out:test1.dll
/m:c:\!\RSDN\nemerle\bin\Debug\net-4.0\Stage1\Nemerle.Macros.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\Microsoft.CSharp.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\Microsoft.VisualBasic.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\Microsoft.Win32.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\mscorlib.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\netstandard.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.AppContext.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Buffers.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Collections.Concurrent.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Collections.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Collections.Immutable.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Collections.NonGeneric.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Collections.Specialized.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.Annotations.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.DataAnnotations.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.EventBasedAsync.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ComponentModel.TypeConverter.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Configuration.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Console.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Core.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Data.Common.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Data.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.Contracts.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.Debug.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.DiagnosticSource.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.FileVersionInfo.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.Process.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.StackTrace.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.TextWriterTraceListener.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.Tools.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.TraceSource.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Diagnostics.Tracing.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Drawing.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Drawing.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Dynamic.Runtime.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Globalization.Calendars.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Globalization.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Globalization.Extensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.Compression.Brotli.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.Compression.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.Compression.FileSystem.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.Compression.ZipFile.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.FileSystem.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.FileSystem.DriveInfo.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.FileSystem.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.FileSystem.Watcher.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.IsolatedStorage.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.MemoryMappedFiles.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.Pipes.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.IO.UnmanagedMemoryStream.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Linq.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Linq.Expressions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Linq.Parallel.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Linq.Queryable.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Memory.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Http.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.HttpListener.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Mail.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.NameResolution.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.NetworkInformation.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Ping.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Requests.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Security.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.ServicePoint.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.Sockets.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.WebClient.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.WebHeaderCollection.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.WebProxy.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.WebSockets.Client.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Net.WebSockets.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Numerics.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Numerics.Vectors.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ObjectModel.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.DispatchProxy.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Emit.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Emit.ILGeneration.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Emit.Lightweight.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Extensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Metadata.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Reflection.TypeExtensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Resources.Reader.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Resources.ResourceManager.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Resources.Writer.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.CompilerServices.VisualC.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Extensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Handles.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.InteropServices.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.InteropServices.RuntimeInformation.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.InteropServices.WindowsRuntime.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Loader.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Numerics.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Serialization.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Serialization.Formatters.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Serialization.Json.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Serialization.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Runtime.Serialization.Xml.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Claims.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Cryptography.Algorithms.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Cryptography.Csp.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Cryptography.Encoding.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Cryptography.Primitives.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Cryptography.X509Certificates.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.Principal.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Security.SecureString.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ServiceModel.Web.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ServiceProcess.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Text.Encoding.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Text.Encoding.Extensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Text.RegularExpressions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Overlapped.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Tasks.Dataflow.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Tasks.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Tasks.Extensions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Tasks.Parallel.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Thread.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.ThreadPool.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Threading.Timer.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Transactions.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Transactions.Local.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.ValueTuple.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Web.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Web.HttpUtility.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Windows.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.Linq.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.ReaderWriter.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.Serialization.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.XDocument.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.XmlDocument.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.XmlSerializer.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.XPath.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\System.Xml.XPath.XDocument.dll
/reference:C:\Users\vc_000\.nuget\packages\microsoft.netcore.app\2.1.0\ref\netcoreapp2.1\WindowsBase.dll


Далее я написал test1.n следующего содержания:
System.Console.WriteLine("Hello!!! " + typeof(string).Assembly.Location);

М скромил response.txt компилятору:
dotnet ncc-core.dll @tesponce.txt


В результате получился test1.dll.

Далее я создал test1.runtimeconfig.json для него:
{
  "runtimeOptions": {
    "tfm": "netcoreapp2.1",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "2.1.0"
    }
  }
}

И выполнил:
c:\!\RSDN\nemerle\bin\Debug\net-4.0\Stage1>dotnet test1.dll
Hello!!! C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13\System.Private.CoreLib.dll
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 02.03.2020 13:36 VladD2 . Предыдущая версия . Еще …
Отредактировано 01.03.2020 13:57 VladD2 . Предыдущая версия .
Отредактировано 01.03.2020 13:57 VladD2 . Предыдущая версия .
Отредактировано 01.03.2020 13:53 VladD2 . Предыдущая версия .
Re[2]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 02.03.20 02:40
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>И выполнил:

VD>
VD>c:\!\RSDN\nemerle\bin\Debug\net-4.0\Stage1>dotnet test1.dll
VD>Hello!!! C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13\System.Private.CoreLib.dll
VD>


Большое спасибо за развернутый ответ!
Уже собрал новый коммит, про референсы уже понял(отчасти), буду разбираться.
Дело в том, что в классике это все очень просто через -r задавалось, в корэ же в deps.json/runtimeconfig.json требуется еще указывать дополнительные опции.
Например, чтобы разрешить грузить сборки из рабочего каталога требуется отдельная настройка(по умолчанию отключено).
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 02.03.20 03:16
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>И выполнил:

VD>
VD>c:\!\RSDN\nemerle\bin\Debug\net-4.0\Stage1>dotnet test1.dll
VD>Hello!!! C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.1.13\System.Private.CoreLib.dll
VD>




На Windows 10 запустилось как и предполагалось(через dotnet test1.dll).
Только референсы пришлось сменить на 2.1.8 (2.1.0 на пк не оказалось).

Затем установил на Ubuntu 18.04 LTS dotnet sdk 2.1.804 и скопировал на linux корень папки bin\Debug\net-4.0
к сожалению сборка не запустилась

dotnet test1.dll

Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'test1.dll'. The module was expected to contain an assembly manifest.
Aborted

Аналогично:

dotnet ncc-core.dll

Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'ncc-core.dll'. The module was expected to contain an assembly manifest.
Aborted

☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.20 12:56
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

AA>dotnet ncc-core.dll


AA>Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'ncc-core.dll'. The module was expected to contain an assembly manifest.

AA>Aborted
AA>[/q]

О, как? Попробую на встроенном в Винду Линухе, как будет время. Надеюсь его будет достаточно для воспроизведения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.03.20 15:52
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'test1.dll'. The module was expected to contain an assembly manifest.

AA>Aborted
AA>[/q]
AA>Аналогично:
AA>

AA>dotnet ncc-core.dll

AA>Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'ncc-core.dll'. The module was expected to contain an assembly manifest.
AA>Aborted


Пришли мне по скайпу или по почте получившиеся у тебы .dll. Посмотрим что в них.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 04.03.20 03:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Пришли мне по скайпу или по почте получившиеся у тебы .dll. Посмотрим что в них.


Отправил на почту из профиля.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 04.03.20 05:49
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Пришли мне по скайпу или по почте получившиеся у тебы .dll. Посмотрим что в них.


По почте не уходит. Выложил на диск

☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.03.20 21:18
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>


На первый взгляд проблемным выглядит только ссылка на CodeDom (она завязана на виндоые сборки).

В test1.dll вообще проблем не видно. Странно, что она не запускается.

Какой у тебя Кор под Линуксом? И какой Линукс? Стоит ли на нем .Net Core SDK? Для сборки нужен именно он.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 05.03.20 01:39
Оценка:
Здравствуйте, VladD2, Вы писали:

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


AA>>


VD>На первый взгляд проблемным выглядит только ссылка на CodeDom (она завязана на виндоые сборки).


VD>В test1.dll вообще проблем не видно. Странно, что она не запускается.


VD>Какой у тебя Кор под Линуксом? И какой Линукс? Стоит ли на нем .Net Core SDK? Для сборки нужен именно он.


it@ubuntu:~/nemerle$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic

it@ubuntu:~/nemerle$ uname -a
Linux ubuntu 4.15.0-76-generic #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

dotnet ставил из tar-архива по официальному мануалу

it@ubuntu:~/nemerle$ dotnet --version
2.1.804
it@ubuntu:~/nemerle$ dotnet --list-sdks
2.1.804 [/home/it/dotnet/sdk]
it@ubuntu:~/nemerle$ dotnet --list-runtimes
Microsoft.AspNetCore.All 2.1.16 [/home/it/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.16 [/home/it/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.16 [/home/it/dotnet/shared/Microsoft.NETCore.App]


Потом скопировал через ftp на линукс (он у меня без гуя).
  Рабочий каталог
it@ubuntu:~/nemerle$ ls
a.txt System.Diagnostics.TraceSource.dll
ComputationExpressions.Tests.exe System.Diagnostics.Tracing.dll
ComputationExpressions.Tests.exe.config System.Drawing.Primitives.dll
ComputationExpressions.Tests.pdb System.Dynamic.Runtime.dll
CSharpParser.deps.json System.Globalization.Calendars.dll
CSharpParser.dll System.Globalization.dll
CSharpParser.pdb System.Globalization.Extensions.dll
CSharpParser.TestMacros.deps.json System.IO.Compression.dll
CSharpParser.TestMacros.dll System.IO.Compression.ZipFile.dll
CSharpParser.TestMacros.pdb System.IO.dll
CSharpParser.Tests.exe System.IO.FileSystem.dll
CSharpParser.Tests.exe.config System.IO.FileSystem.DriveInfo.dll
CSharpParser.Tests.pdb System.IO.FileSystem.Primitives.dll
dnlib.dll System.IO.FileSystem.Watcher.dll
main.n System.IO.IsolatedStorage.dll
main.resp System.IO.MemoryMappedFiles.dll
Microsoft.Win32.Primitives.dll System.IO.Pipes.dll
ncc-core.deps.json System.IO.UnmanagedMemoryStream.dll
ncc-core.dll System.Linq.dll
ncc-core.pdb System.Linq.Expressions.dll
ncc-core.runtimeconfig.dev.json System.Linq.Parallel.dll
ncc-core.runtimeconfig.json System.Linq.Queryable.dll
ncc.exe System.Net.Http.dll
ncc.exe.config System.Net.NameResolution.dll
ncc.parser.csharp.deps.json System.Net.NetworkInformation.dll
ncc.parser.csharp.dll System.Net.Ping.dll
ncc.parser.csharp.pdb System.Net.Primitives.dll
ncc.pdb System.Net.Requests.dll
Nemerle.Async.deps.json System.Net.Security.dll
Nemerle.Async.dll System.Net.Sockets.dll
Nemerle.Async.Macros.deps.json System.Net.WebHeaderCollection.dll
Nemerle.Async.Macros.dll System.Net.WebSockets.Client.dll
Nemerle.Async.Macros.pdb System.Net.WebSockets.dll
Nemerle.Async.pdb System.ObjectModel.dll
Nemerle.Compiler.deps.json System.Reflection.dll
Nemerle.Compiler.dll System.Reflection.Extensions.dll
Nemerle.Compiler.pdb System.Reflection.Primitives.dll
Nemerle.ComputationExpressions.deps.json System.Resources.Reader.dll
Nemerle.ComputationExpressions.dll System.Resources.ResourceManager.dll
Nemerle.ComputationExpressions.Macros.deps.json System.Resources.Writer.dll
Nemerle.ComputationExpressions.Macros.dll System.Runtime.CompilerServices.VisualC.dll
Nemerle.ComputationExpressions.Macros.pdb System.Runtime.dll
Nemerle.ComputationExpressions.pdb System.Runtime.Extensions.dll
Nemerle.deps.json System.Runtime.Handles.dll
Nemerle.dll System.Runtime.InteropServices.dll
Nemerle.Macros.deps.json System.Runtime.InteropServices.RuntimeInformation.dll
Nemerle.Macros.dll System.Runtime.Numerics.dll
Nemerle.Macros.pdb System.Runtime.Serialization.Formatters.dll
Nemerle.MSBuild.targets System.Runtime.Serialization.Json.dll
Nemerle.MSBuild.Tasks.dll System.Runtime.Serialization.Primitives.dll
Nemerle.pdb System.Runtime.Serialization.Xml.dll
Nemerle.Peg.deps.json System.Security.Claims.dll
Nemerle.Peg.dll System.Security.Cryptography.Algorithms.dll
Nemerle.Peg.Macros.deps.json System.Security.Cryptography.Csp.dll
Nemerle.Peg.Macros.dll System.Security.Cryptography.Encoding.dll
Nemerle.Peg.Macros.pdb System.Security.Cryptography.Primitives.dll
Nemerle.Peg.pdb System.Security.Cryptography.X509Certificates.dll
Nemerle.Sdk.props System.Security.Principal.dll
Nemerle.Sdk.targets System.Security.SecureString.dll
netstandard.dll System.Text.Encoding.dll
out.exe System.Text.Encoding.Extensions.dll
System.AppContext.dll System.Text.RegularExpressions.dll
System.CodeDom.dll System.Threading.dll
System.Collections.Concurrent.dll System.Threading.Overlapped.dll
System.Collections.dll System.Threading.Tasks.dll
System.Collections.NonGeneric.dll System.Threading.Tasks.Parallel.dll
System.Collections.Specialized.dll System.Threading.Thread.dll
System.ComponentModel.dll System.Threading.ThreadPool.dll
System.ComponentModel.EventBasedAsync.dll System.Threading.Timer.dll
System.ComponentModel.Primitives.dll System.ValueTuple.dll
System.ComponentModel.TypeConverter.dll System.Xml.ReaderWriter.dll
System.Console.dll System.Xml.XDocument.dll
System.Data.Common.dll System.Xml.XmlDocument.dll
System.Diagnostics.Contracts.dll System.Xml.XmlSerializer.dll
System.Diagnostics.Debug.dll System.Xml.XPath.dll
System.Diagnostics.FileVersionInfo.dll System.Xml.XPath.XDocument.dll
System.Diagnostics.Process.dll test1.dll
System.Diagnostics.StackTrace.dll test1.pdb
System.Diagnostics.TextWriterTraceListener.dll test1.runtimeconfig.json
System.Diagnostics.Tools.dll testReadWrite
it@ubuntu:~/nemerle$

Запускал по ssh из рабочего каталога.
Сейчас возникла идея, может при копировании по ftp случилась проблема, попробую архивом передать и повторить.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: retarget-compiler to dotnet core
От: varenikAA  
Дата: 05.03.20 01:48
Оценка:
Здравствуйте, VladD2, Вы писали:

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


AA>>


VD>На первый взгляд проблемным выглядит только ссылка на CodeDom (она завязана на виндоые сборки).


VD>В test1.dll вообще проблем не видно. Странно, что она не запускается.

VD>Какой у тебя Кор под Линуксом? И какой Линукс? Стоит ли на нем .Net Core SDK? Для сборки нужен именно он.


Всё работает!!! Извиняюсь за свою тупость. Забыл, что надо перевести было ftp перед загрузкой в binary режим.
Реально круто!
Спасибо!


Когда следует ждать поддержку VS Code?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.03.20 12:25
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

AA>Всё работает!!! Извиняюсь за свою тупость. Забыл, что надо перевести было ftp перед загрузкой в binary режим.

AA>Реально круто!

Отлично!

AA>Когда следует ждать поддержку VS Code?


Сейчас реанимируем плагин для VS 2017 для Немерла. Без него развивать проекты очень сложно.

Думаю на следующе неделе он заработает. После этого перейдем к работе над поддержкой VS Code для Нитры.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: retarget-compiler to dotnet core
От: _NN_ www.nemerleweb.com
Дата: 05.03.20 20:05
Оценка:
Здравствуйте, VladD2, Вы писали:

AA>>Когда следует ждать поддержку VS Code?


VD>Сейчас реанимируем плагин для VS 2017 для Немерла. Без него развивать проекты очень сложно.

Кстати, а он на 2019 не заработает ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[9]: retarget-compiler to dotnet core
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.03.20 21:28
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Кстати, а он на 2019 не заработает ?


Не знаю. По идее должен. Но поставить VS 2019 пока что не могу. Может как-нить на виртуалке попробую если время будет.

Если кто-то попробует и отпишется о проблемах буду признателен.

Пробовать надо интеграцию из ветки retarget-compiler. Она переведена на новый VS API.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 06.03.2020 12:55 VladD2 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.