Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, _NN_, Вы писали:
_NN>Итак хорошие новости. _NN>Моно из мастера таки умеет собирать компилятор из исходников
Точно умеет? Там последний комментарий
Rodrigo Kumpera 2014-02-20 15:05:51 EST
Reverted Zoltan's fix.
We should keep the old behavior when possible. Now we're using getrlimit to get
the max thread stack size.
И, если не секрет, как его собрать-то? Я пробовал так:
git clone https://github.com/rsdn/nemerle.git && cd nemerle
bash configure.sh
make -j 8
В ответ получил
make[1]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[2]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[2]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[2]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
MKDIR out.stage1
MKDIR out.stage3
MKDIR out.stage2
make[3]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[3]: *** Нет правила для сборки цели `out.stage1/ncc.exe', требуемой для `out.stage2/Nemerle.stage2.dll'. Останов.
make[3]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[2]: *** [aux-stage] Ошибка 2
make[2]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[1]: *** [stage2] Ошибка 2
make[1]: *** Ожидание завершения заданий...
make[3]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[3]: *** Нет правила для сборки цели `out.stage2/ncc.exe', требуемой для `out.stage3/Nemerle.dll'. Останов.
make[3]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[2]: *** [last-stage] Ошибка 2
make[2]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[1]: *** [stage3] Ошибка 2
make[3]: Вход в каталог `/home/pbludov/src/nemerle/ncc'
make[3]: *** Нет правила для сборки цели `typing/MType.n', требуемой для `out.stage1/Nemerle.Compiler.stage1.dll'. Останов.
make[3]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[2]: *** [aux-stage] Ошибка 2
make[2]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make[1]: *** [stage1] Ошибка 2
make[1]: Выход из каталога `/home/pbludov/src/nemerle/ncc'
make: *** [all] Ошибка 2
Здравствуйте, Блудов Павел, Вы писали:
БП>Здравствуйте, _NN_, Вы писали:
_NN>>Итак хорошие новости. _NN>>Моно из мастера таки умеет собирать компилятор из исходников БП>Точно умеет? Там последний комментарий БП>
Rodrigo Kumpera 2014-02-20 15:05:51 EST
БП>Reverted Zoltan's fix.
БП>We should keep the old behavior when possible. Now we're using getrlimit to get
БП>the max thread stack size.
Не могу найти этот коммит.
На всякий случай я говорю про ветку master.
БП>И, если не секрет, как его собрать-то? Я пробовал так:
make давно никто не поддерживает в актуальном состоянии.
Есть xbuild.
[MonoTODO]
public override bool Execute ()
{
throw new NotImplementedException ();
}
Последние изменения у этого файла были 7 лет назад. Полагаю, его нужно просто взять и написать.
Вот оригинальный код для примера:
using Microsoft.Build.Framework;
using Microsoft.Build.Shared;
using Microsoft.Build.Utilities;
using System;
using System.Collections;
using System.Globalization;
using System.Reflection;
using System.Runtime;
using System.Text;
namespace Microsoft.Build.Tasks
{
public class GetAssemblyIdentity : TaskExtension
{
private ITaskItem[] assemblyFiles;
private ITaskItem[] assemblies;
[Required]
public ITaskItem[] AssemblyFiles
{
get
{
ErrorUtilities.VerifyThrowArgumentNull((object) this.assemblyFiles, "assemblyFiles");
return this.assemblyFiles;
}
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set
{
this.assemblyFiles = value;
}
}
[Output]
public ITaskItem[] Assemblies
{
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get
{
return this.assemblies;
}
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set
{
this.assemblies = value;
}
}
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public GetAssemblyIdentity()
{
}
public override bool Execute()
{
ArrayList arrayList = new ArrayList();
foreach (ITaskItem taskItem in this.AssemblyFiles)
{
AssemblyName assemblyName;
try
{
assemblyName = AssemblyName.GetAssemblyName(taskItem.ItemSpec);
}
catch (BadImageFormatException ex)
{
this.Log.LogErrorWithCodeFromResources("GetAssemblyIdentity.CouldNotGetAssemblyName", (object) taskItem.ItemSpec, (object) ex.Message);
continue;
}
catch (Exception ex)
{
if (ExceptionHandling.NotExpectedException(ex))
{
throw;
}
else
{
this.Log.LogErrorWithCodeFromResources("GetAssemblyIdentity.CouldNotGetAssemblyName", (object) taskItem.ItemSpec, (object) ex.Message);
continue;
}
}
ITaskItem destinationItem = (ITaskItem) new TaskItem(assemblyName.FullName);
destinationItem.SetMetadata("Name", assemblyName.Name);
if (assemblyName.Version != (Version) null)
destinationItem.SetMetadata("Version", ((object) assemblyName.Version).ToString());
if (assemblyName.GetPublicKeyToken() != null)
destinationItem.SetMetadata("PublicKeyToken", GetAssemblyIdentity.ByteArrayToHex(assemblyName.GetPublicKeyToken()));
if (assemblyName.CultureInfo != null)
destinationItem.SetMetadata("Culture", assemblyName.CultureInfo.ToString());
taskItem.CopyMetadataTo(destinationItem);
arrayList.Add((object) destinationItem);
}
this.Assemblies = (ITaskItem[]) arrayList.ToArray(typeof (ITaskItem));
return !this.Log.HasLoggedErrors;
}
private static string ByteArrayToHex(byte[] a)
{
if (a == null)
return (string) null;
StringBuilder stringBuilder = new StringBuilder(a.Length);
foreach (byte num in a)
stringBuilder.Append(num.ToString("X02", (IFormatProvider) CultureInfo.InvariantCulture));
return ((object) stringBuilder).ToString();
}
}
}
Свежие вести с полей.
Компилятор собирает все 4 стадии, собирает библиотеки и запускает тесты
Осталось только разобраться почему некоторые (всего 5) тесты падают.
Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, _NN_, Вы писали:
_NN>Свежие вести с полей. _NN>Компилятор собирает все 4 стадии, собирает библиотеки и запускает тесты _NN>Осталось только разобраться почему некоторые (всего 5) тесты падают.
Здравствуйте, Аноним, Вы писали:
А>НемерлиВеб требуется?
Для чего ? Для сборки компилятора ?
Для сборки компилятора нужен только компилятор
И Mono собранный из мастера, не уверен, что на 3.4.0 все работает.
: error : Target '_ComputeNonExistentFileProperty', a dependency of target 'CoreCompile', not found.
Done building project "/ld/program/nemerle/nemerle-trunk/nemerle/Nemerle.nproj".-- FAILED
моно собрано из мастера (пару недель назад).
Проблема случаем не в том, что "Item/PropertyGroups in targets" не реализовано?
Я вроде реализовал ItemDefinitionGroup. Вернее адаптировал патч с этим, который у них в багтрекере валялся лет 5.
В том что он корректен (и что я его корректно втянул в текущую версию) у меня сомнения, но вроде бы сам моно с ним собирается.
А сборка Немерле одинаково падает, что на патченной версии, что на чистой из мастера.
Здравствуйте, Вестильд, Вы писали:
В>выпадают ошибки: В>
В>: error : Target '_ComputeNonExistentFileProperty', a dependency of target 'CoreCompile', not found.
В> Done building project "/ld/program/nemerle/nemerle-trunk/nemerle/Nemerle.nproj".-- FAILED
В>
Target '_ComputeNonExistentFileProperty' для msbuild находится в Microsoft.Common.targets, надо найти где оно в моно и подключить.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Вестильд, Вы писали:
В>>выпадают ошибки: В>>
В>>: error : Target '_ComputeNonExistentFileProperty', a dependency of target 'CoreCompile', not found.
В>> Done building project "/ld/program/nemerle/nemerle-trunk/nemerle/Nemerle.nproj".-- FAILED
В>>
Z>Target '_ComputeNonExistentFileProperty' для msbuild находится в Microsoft.Common.targets, надо найти где оно в моно и подключить.
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Вестильд, Вы писали:
В>>Я правильно понимаю, что причина в том, что моно не умеет "Item/PropertyGroups in targets"?
H>Да, там нужно CreateItem кажется городить, который в свежем MSBuild-е стал Obsolete.
Это вы предлагаете в Nemerle? Может лучше mono допилить?