К сожалению, это нагрузка на стандартную библиотеку и замедлит каждую компиляцию
Нам понравилось Ваше предложение и его реализация запланирована в ABCNET
. Ваше авторство указано в самой Issue
. Если имеются идеи, но не хотите регистрироваться на GitHub
, можете их предлагать через Yandex forms
. Оставайтесь с нами, заранее спасибо.
– NETMouse-projects ©
// Код изменён под ABCNET v0.0.10
using ABCNET.Extensions;
using ABCNET.Utils;
namespace TestProgram
{
internal class Program
{
private static void Main(string[] args)
{
Arr.Rand(Base.ReadInteger("N:"), -20, 25).Println().Numerate().MinBy(x => x.Item).Index.Println();
}
}
}
примере (и не только) раньше в ранних версиях библиотеки вылетало Undefined FileName
из-за вложенных классов внутри partial
-классов. Возможно, было связано с лямбда-выражением. В ABCNET
есть вложенные классы сейчас, но в других местах. Обратите внимание на них, иначе будет не очень приятно ученикам, например, Вашим, если такая ошибка проявится при использовании библиотеки. Для тестирования пойдёт данная версия ABCNET
. Тем более, моя библиотека не единственная, среди всех, которые можно подключать к PascalABC.NET.
Да, понятно.
Приведите минимальный пример с простой dll на C# чтобы можно было тестировать.
Тестировать со сколько-нибудь большим кодом невозможно.
В наши задачи не входит намеренное тестирование каких-либо программных средств. Круг наших обязанностей - написание и тестирование исключительно собственных продуктов. Проблемы, выявленные в каких-либо компиляторах, связанные с использованием наших библиотек передаются соответствующим тестировщикам с приложением примера, в котором проявляется ошибка. Дело передано - дальше Вы, как руководитель проекта PascalABC.NET, вправе распоряжаться тем, как и с кем устранять эту проблему. Из наиболее активных тестировщиков-энтузиастов мне известен только @Sun_Serega.
Она проявилась в нашем проекте, но только при использовании PascalABC.NET. Она - лежит на стороне компилятора, для которого затруднительно “разбирать” partial-классы, ещё и вложенные. Как исправлять - дело команды PascalABC.NET, наше - сообщать о том, что такие проблемы существуют.
Кроме того, обращу внимание на данную Issue:
В ней от выявителя ошибки минимальный код не требовался. Почему такое требование предъявляется к другим пользователям - неясно. Либо требуем от всех, либо ни от кого, почему такая избирательность?
Тогда всё хорошо. Но, как я понимаю, у Вас последняя версия. А у меня была не последняя на тот момент. У меня не работало в 3.5.1.2277
. Где это было исправлено? В Что нового - не видел по этому поводу заметок. Как понять, когда обновляться? На официальном сайте не даётся ссылок на Issue
, чтобы потом перейти на GitHub
и посмотреть изменения. В Visual Studio
, например, сделаны уведомления по поводу выхода новой версии (не сборки).
type
MyString = class
static function operator implicit(s: string): MyString := new MyString;
end;
begin
var s: MyString := 'abcde';
end.
Реально ли сделать так, чтоб это работало?
Увидел. Напишите Issue
Исправили
Раз sizeof
теперь считается всегда на этапе компиляции, как насчёт разрешить это?
uses System.Runtime.InteropServices;
type
[StructLayout(LayoutKind.&Explicit, Size = sizeof(integer) + 50)]
r1 = record
[FieldOffset(0)] i1: integer;
[FieldOffset(sizeof(integer))] str: byte; // статичная строка на 49 символов
end;
begin end.
Было бы очень полезно в кодогенераторах OpenCL
и OpenGL
.
Это как? Скриптами?
Как в Visual Studio. Там отладка работает и в консольных приложениях
Но настраивается все из оболочки ведь. Какой смысл в том, чтобы делать отладку в консоли? По-моему это такая долботня будет, а насколько востребовано?